
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

    <title>udSDK &#8212; Euclideon udSDK  documentation</title>
    <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
    <script src="_static/jquery.js"></script>
    <script src="_static/underscore.js"></script>
    <script src="_static/doctools.js"></script>
    <script src="_static/language_data.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="3rd Party Licenses" href="udSDKExternal.html" />
    <link rel="prev" title="udSDK Release Notes" href="ReleaseNotes.html" />
   
  <link rel="stylesheet" href="_static/custom.css" type="text/css" />
  
  
  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

  </head><body>
  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  <section id="udsdk">
<h1>udSDK<a class="headerlink" href="#udsdk" title="Permalink to this headline">¶</a></h1>
<p>The udSDK is provided as shared libraries for a variety of platforms.</p>
<section id="logging-in-and-getting-user-info">
<h2>Logging in and getting user info<a class="headerlink" href="#logging-in-and-getting-user-info" title="Permalink to this headline">¶</a></h2>
<section id="udcontext">
<h3>udContext<a class="headerlink" href="#udcontext" title="Permalink to this headline">¶</a></h3>
<dl class="class">
<dt id="_CPPv49udContext">
<span id="_CPPv39udContext"></span><span id="_CPPv29udContext"></span><span id="udContext"></span><span class="target" id="structud_context"></span><em class="property">struct </em><code class="sig-name descname">udContext</code><a class="headerlink" href="#_CPPv49udContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of the udSDK system </p>
</dd></dl>

<p>The <strong><a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a></strong> object provides an interface to connect and communicate with a Euclideon udServer. Once instantiated, the <strong><a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a></strong> can be passed into many udSDK functions to provide a context to operate within. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv422udContext_ConnectStartPP16udContextPartialPKcPKcPKcPPKcPPKc">
<span id="_CPPv322udContext_ConnectStartPP16udContextPartialPKcPKcPKcPPKcPPKc"></span><span id="_CPPv222udContext_ConnectStartPP16udContextPartialPKcPKcPKcPPKcPPKc"></span><span id="udContext_ConnectStart__udContextPartialPP.cCP.cCP.cCP.cCPP.cCPP"></span><span class="target" id="ud_context_8h_1a78320b0a9958cca3002d3e9284b0e465"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_ConnectStart</code><span class="sig-paren">(</span><em class="property">struct</em> udContextPartial **<em>ppPartialContext</em>, <em class="property">const</em> char *<em>pServerURL</em>, <em class="property">const</em> char *<em>pApplicationName</em>, <em class="property">const</em> char *<em>pApplicationVersion</em>, <em class="property">const</em> char **<em>ppApprovePath</em>, <em class="property">const</em> char **<em>ppApproveCode</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udContext_ConnectStartPP16udContextPartialPKcPKcPKcPPKcPPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Establishes a connection to a Euclideon udCloud and creates a new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call udContext_ConnectComplete or udContext_ConnectCancel with ppPartialContext to destroy the object </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppPartialContext</span></code>: A pointer to a location in which the new udContextPartial object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pServerURL</span></code>: A Server URL to the Euclideon udCloud instance. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationName</span></code>: The name of the application using udSDK. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationVersion</span></code>: The version of the application using udSDK. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppApprovePath</span></code>: The address that needs to be opened in a browser window (if this is nullptr proceed to udContext_ConnectComplete) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppApproveCode</span></code>: A code that the user can use to verify their session in the udCloud API on another device (can be NULL) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udContext_ConnectCompletePP9udContextPP16udContextPartial">
<span id="_CPPv325udContext_ConnectCompletePP9udContextPP16udContextPartial"></span><span id="_CPPv225udContext_ConnectCompletePP9udContextPP16udContextPartial"></span><span id="udContext_ConnectComplete__udContextPP.udContextPartialPP"></span><span class="target" id="ud_context_8h_1a0d4d54fbb8657434bfe22bfce42dc16c"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_ConnectComplete</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> **<em>ppContext</em>, <em class="property">struct</em> udContextPartial **<em>ppPartialContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udContext_ConnectCompletePP9udContextPP16udContextPartial" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Establishes a connection to a Euclideon udCloud server and creates a new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udContext_Disconnect</strong> with <code class="docutils literal notranslate"><span class="pre">ppContext</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>ppApprovePath from udContext_ConnectStart will be invalid after this call </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppContext</span></code>: A pointer to a location in which the new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppPartialContext</span></code>: A pointer to the udContextPartial created from udContext_ConnectStart (will be freed on a successful login). </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udContext_ConnectCancelPP16udContextPartial">
<span id="_CPPv323udContext_ConnectCancelPP16udContextPartial"></span><span id="_CPPv223udContext_ConnectCancelPP16udContextPartial"></span><span id="udContext_ConnectCancel__udContextPartialPP"></span><span class="target" id="ud_context_8h_1a2de4c126b951486b15469f0a56089e0a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_ConnectCancel</code><span class="sig-paren">(</span><em class="property">struct</em> udContextPartial **<em>ppPartialContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udContext_ConnectCancelPP16udContextPartial" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Cancels a login attempt to a Euclideon udCloud server;</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection cleanup. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppPartialContext</span></code>: A pointer to the udContextPartial created from udContext_ConnectStart (will be freed). </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udContext_ConnectWithKeyPP9udContextPKcPKcPKcPKc">
<span id="_CPPv324udContext_ConnectWithKeyPP9udContextPKcPKcPKcPKc"></span><span id="_CPPv224udContext_ConnectWithKeyPP9udContextPKcPKcPKcPKc"></span><span id="udContext_ConnectWithKey__udContextPP.cCP.cCP.cCP.cCP"></span><span class="target" id="ud_context_8h_1ae97ae4b1cc6786d94bef021b98950850"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_ConnectWithKey</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> **<em>ppContext</em>, <em class="property">const</em> char *<em>pServerURL</em>, <em class="property">const</em> char *<em>pApplicationName</em>, <em class="property">const</em> char *<em>pApplicationVersion</em>, <em class="property">const</em> char *<em>pKey</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udContext_ConnectWithKeyPP9udContextPKcPKcPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Establishes a connection to Euclideon udCloud server and creates a new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call udContext_Disconnect with <code class="docutils literal notranslate"><span class="pre">ppContext</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>When used from the Emscripten/WebAssembly builds it will try start a domain session when pKey is NULL </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppContext</span></code>: A pointer to a location in which the new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pServerURL</span></code>: A URL to a Euclideon udCloud server to connect to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationName</span></code>: The name of the application using udSDK. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationVersion</span></code>: The version of the application using udSDK. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pKey</span></code>: The provided key that will start the context </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udContext_ConnectLegacyPP9udContextPKcPKcPKcPKc">
<span id="_CPPv323udContext_ConnectLegacyPP9udContextPKcPKcPKcPKc"></span><span id="_CPPv223udContext_ConnectLegacyPP9udContextPKcPKcPKcPKc"></span><span id="udContext_ConnectLegacy__udContextPP.cCP.cCP.cCP.cCP"></span><span class="target" id="ud_context_8h_1a5055d81245a83ba15aa6620337e0e489"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_ConnectLegacy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> **<em>ppContext</em>, <em class="property">const</em> char *<em>pURL</em>, <em class="property">const</em> char *<em>pApplicationName</em>, <em class="property">const</em> char *<em>pEmail</em>, <em class="property">const</em> char *<em>pPassword</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udContext_ConnectLegacyPP9udContextPKcPKcPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Establishes a (legacy) connection to a Euclideon udServer and creates a new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udContext_Disconnect</strong> with <code class="docutils literal notranslate"><span class="pre">ppContext</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppContext</span></code>: A pointer to a location in which the new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pURL</span></code>: A URL to a Euclideon udServer to connect to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationName</span></code>: The name of the application connecting to the Euclideon udServer. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pEmail</span></code>: The email address of the user connecting to the Euclideon udServer. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPassword</span></code>: The password of the user connecting to the Euclideon udServer. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udContext_ConnectFromDomainPP9udContextPKcPKc">
<span id="_CPPv327udContext_ConnectFromDomainPP9udContextPKcPKc"></span><span id="_CPPv227udContext_ConnectFromDomainPP9udContextPKcPKc"></span><span id="udContext_ConnectFromDomain__udContextPP.cCP.cCP"></span><span class="target" id="ud_context_8h_1a5ccc74671eb5287ea3f45a56e4d6cd45"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_ConnectFromDomain</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> **<em>ppContext</em>, <em class="property">const</em> char *<em>pServerURL</em>, <em class="property">const</em> char *<em>pApplicationName</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udContext_ConnectFromDomainPP9udContextPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Establishes a (legacy) connection to a Euclideon udServer and creates a new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udContext_Disconnect</strong> with <code class="docutils literal notranslate"><span class="pre">ppContext</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>This connect function is specific to the Emscripten/WebAssembly builds and will return udE_Unsupported on all other platforms </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppContext</span></code>: A pointer to a location in which the new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pServerURL</span></code>: A URL to a Euclideon udServer to connect to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationName</span></code>: The name of the application connecting to the Euclideon udServer. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udContext_TryResumePP9udContextPKcPKcPKc8uint32_t">
<span id="_CPPv319udContext_TryResumePP9udContextPKcPKcPKc8uint32_t"></span><span id="_CPPv219udContext_TryResumePP9udContextPKcPKcPKc8uint32_t"></span><span id="udContext_TryResume__udContextPP.cCP.cCP.cCP.uint32_t"></span><span class="target" id="ud_context_8h_1afb354553d6b38a31301511705bb71ab5"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_TryResume</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> **<em>ppContext</em>, <em class="property">const</em> char *<em>pURL</em>, <em class="property">const</em> char *<em>pApplicationName</em>, <em class="property">const</em> char *<em>pUsername</em>, uint32_t <em>tryDongle</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udContext_TryResumePP9udContextPKcPKcPKc8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Attempts to reestablish a connection to Euclideon udCloud, Euclideon udServer (or run offline with an offline context) and creates a new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection creation. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>The application should call udContext_Disconnect with <code class="docutils literal notranslate"><span class="pre">ppContext</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>This function can crash with some debuggers attached when trying to read from a dongle. If debugging, ensure that tryDongle is set to 0. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This function will try use a session from a dongle first if that is supported; passing null to pURL, pApplicationName and pUsername will test the dongle but will otherwise be invalid </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppContext</span></code>: A pointer to a location in which the new <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pURL</span></code>: A URL to a Euclideon udServer to connect to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationName</span></code>: The name of the application connecting to the Euclideon udServer. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pUsername</span></code>: The username of the user connecting to the Euclideon udServer. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">tryDongle</span></code>: If 0, the dongle will not be checked (on platforms that support dongles). </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udContext_DisconnectPP9udContext8uint32_t">
<span id="_CPPv320udContext_DisconnectPP9udContext8uint32_t"></span><span id="_CPPv220udContext_DisconnectPP9udContext8uint32_t"></span><span id="udContext_Disconnect__udContextPP.uint32_t"></span><span class="target" id="ud_context_8h_1a7d11845c2fc99c8af894ada3dfe55e3b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_Disconnect</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> **<em>ppContext</em>, uint32_t <em>endSession</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udContext_DisconnectPP9udContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Disconnects and destroys a <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object that was created using one of the context creation functions.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the connection destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppContext</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>If other resources are still referencing this context this will return udE_NotAllowed until those resources are destroyed first </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppContext</span></code>: A pointer to a <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> object which is to be disconnected and destroyed. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">endSession</span></code>: Not 0 if the session will be ended (cannot be resumed) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udContext_GetSessionInfoP9udContextP13udSessionInfo">
<span id="_CPPv324udContext_GetSessionInfoP9udContextP13udSessionInfo"></span><span id="_CPPv224udContext_GetSessionInfoP9udContextP13udSessionInfo"></span><span id="udContext_GetSessionInfo__udContextP.udSessionInfoP"></span><span class="target" id="ud_context_8h_1a2ba39ae1e21427b01d33c19b42ceadb1"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udContext_GetSessionInfo</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv413udSessionInfo" title="udSessionInfo">udSessionInfo</a> *<em>pInfo</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udContext_GetSessionInfoP9udContextP13udSessionInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the session information from an active <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of copying the structure </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> to get the session info for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pInfo</span></code>: The preallocated structure to copy the info into. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv413udSessionInfo">
<span id="_CPPv313udSessionInfo"></span><span id="_CPPv213udSessionInfo"></span><span id="udSessionInfo"></span><span class="target" id="structud_session_info"></span><em class="property">struct </em><code class="sig-name descname">udSessionInfo</code><a class="headerlink" href="#_CPPv413udSessionInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udContext.h&gt;</em><p>This structure stores information about the current session </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udSessionInfo10apiVersionE">
<span id="_CPPv3N13udSessionInfo10apiVersionE"></span><span id="_CPPv2N13udSessionInfo10apiVersionE"></span><span id="udSessionInfo::apiVersion__uint32_t"></span><span class="target" id="structud_session_info_1a8a6563987893604b3ea870e9a084cb2b"></span>uint32_t <code class="sig-name descname">apiVersion</code><a class="headerlink" href="#_CPPv4N13udSessionInfo10apiVersionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The version of the API of the remote system (0 is offine, 1 is legacy udServer, 2 is udCloud) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udSessionInfo8isDomainE">
<span id="_CPPv3N13udSessionInfo8isDomainE"></span><span id="_CPPv2N13udSessionInfo8isDomainE"></span><span id="udSessionInfo::isDomain__uint32_t"></span><span class="target" id="structud_session_info_1a68a44db58008e9351d340666569f8763"></span>uint32_t <code class="sig-name descname">isDomain</code><a class="headerlink" href="#_CPPv4N13udSessionInfo8isDomainE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If this is not 0 then this is a domain session (0 is non-domain session) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udSessionInfo9isPremiumE">
<span id="_CPPv3N13udSessionInfo9isPremiumE"></span><span id="_CPPv2N13udSessionInfo9isPremiumE"></span><span id="udSessionInfo::isPremium__uint32_t"></span><span class="target" id="structud_session_info_1af24d26ca70d8f578322c0d3025ac91f7"></span>uint32_t <code class="sig-name descname">isPremium</code><a class="headerlink" href="#_CPPv4N13udSessionInfo9isPremiumE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If this session will have access to premium features. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udSessionInfo16expiresTimestampE">
<span id="_CPPv3N13udSessionInfo16expiresTimestampE"></span><span id="_CPPv2N13udSessionInfo16expiresTimestampE"></span><span id="udSessionInfo::expiresTimestamp__double"></span><span class="target" id="structud_session_info_1a98e2d024793b33625544fd2b1f6e3072"></span>double <code class="sig-name descname">expiresTimestamp</code><a class="headerlink" href="#_CPPv4N13udSessionInfo16expiresTimestampE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The timestamp in UTC when the session will automatically end. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udSessionInfo11displayNameE">
<span id="_CPPv3N13udSessionInfo11displayNameE"></span><span id="_CPPv2N13udSessionInfo11displayNameE"></span><span id="udSessionInfo::displayName__cA"></span><span class="target" id="structud_session_info_1a24efc1e0700d0a32860afefd059c85b3"></span>char <code class="sig-name descname">displayName</code>[1024]<a class="headerlink" href="#_CPPv4N13udSessionInfo11displayNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The null terminated display name of the user. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="udconfig">
<h3>udConfig<a class="headerlink" href="#udconfig" title="Permalink to this headline">¶</a></h3>
<p>The <strong>udConfig</strong> functions all set global configuration options for the entire loaded shared library. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv419udConfig_ForceProxyPKc">
<span id="_CPPv319udConfig_ForceProxyPKc"></span><span id="_CPPv219udConfig_ForceProxyPKc"></span><span id="udConfig_ForceProxy__cCP"></span><span class="target" id="ud_config_8h_1a57938e56ff02bafbd41a5a33f96f0962"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConfig_ForceProxy</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pProxyAddress</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udConfig_ForceProxyPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function can be used to override the internal proxy auto-detection used by cURL.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of forcing the proxy. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>By default the proxy is attempted to be auto-detected. This fails in many proxy configurations. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pProxyAddress</span></code>: This is a null terminated string, can include port number and protocol. <code class="docutils literal notranslate"><span class="pre">192.168.0.1</span></code>, <code class="docutils literal notranslate"><span class="pre">169.123.123.1:80</span></code>, <code class="docutils literal notranslate"></code> or <code class="docutils literal notranslate"></code>. Setting this to either <code class="docutils literal notranslate"><span class="pre">NULL</span></code> or (empty string) <code class="docutils literal notranslate"><span class="pre">&quot;&quot;</span></code> will reset to attempting auto-detection. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udConfig_SetProxyAuthPKcPKc">
<span id="_CPPv321udConfig_SetProxyAuthPKcPKc"></span><span id="_CPPv221udConfig_SetProxyAuthPKcPKc"></span><span id="udConfig_SetProxyAuth__cCP.cCP"></span><span class="target" id="ud_config_8h_1a42043ccdd6a0a1ac9d9f0843950ddaca"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConfig_SetProxyAuth</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pProxyUsername</em>, <em class="property">const</em> char *<em>pProxyPassword</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udConfig_SetProxyAuthPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function is used in conjunction with <code class="docutils literal notranslate"><span class="pre">udConfig_ForceProxy</span></code> or the auto-detect proxy system to forward info from the user for their proxy details.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the proxy authentication. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This is usually called after another udSDK function returns <code class="docutils literal notranslate"><span class="pre">udE_ProxyAuthRequired</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pProxyUsername</span></code>: This is a null terminated string of the username of the user for the proxy. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pProxyPassword</span></code>: This is a null terminated string of the password of the user for the proxy. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv438udConfig_IgnoreCertificateVerification8uint32_t">
<span id="_CPPv338udConfig_IgnoreCertificateVerification8uint32_t"></span><span id="_CPPv238udConfig_IgnoreCertificateVerification8uint32_t"></span><span id="udConfig_IgnoreCertificateVerification__uint32_t"></span><span class="target" id="ud_config_8h_1a9aa9f9f0cc5db98317a5c626a6e98d9a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConfig_IgnoreCertificateVerification</code><span class="sig-paren">(</span>uint32_t <em>ignore</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv438udConfig_IgnoreCertificateVerification8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Allows udSDK to connect to server with an unrecognized certificate authority, sometimes required for self-signed certificates or poorly configured proxies.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of ignoring the certificate verification. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>Ignoring certificate verification is very high risk. Do not enable this option by default and display clearly to the user that this setting will reduce the security of the entire system and they should only enable the setting if their system administrator has instructed them to do so. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>By default certificate verification is run (not ignored). </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ignore</span></code>: <code class="docutils literal notranslate"><span class="pre">0</span></code> if verification is to be processed, all other values if certificate verification should be skipped. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udConfig_SetUserAgentPKc">
<span id="_CPPv321udConfig_SetUserAgentPKc"></span><span id="_CPPv221udConfig_SetUserAgentPKc"></span><span id="udConfig_SetUserAgent__cCP"></span><span class="target" id="ud_config_8h_1a06f9e4b118ba4aacb652fdfd4a4c90b0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConfig_SetUserAgent</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pUserAgent</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udConfig_SetUserAgentPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function can be used to override the user agent used by cURL.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the user agent. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pUserAgent</span></code>: This is a null terminated string of the user agent. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udConfig_SetConfigLocationPKc">
<span id="_CPPv326udConfig_SetConfigLocationPKc"></span><span id="_CPPv226udConfig_SetConfigLocationPKc"></span><span id="udConfig_SetConfigLocation__cCP"></span><span class="target" id="ud_config_8h_1a144b8cc28a2918e9bb1e1f65e90c99f9"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConfig_SetConfigLocation</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pLocation</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udConfig_SetConfigLocationPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function can be used to override the location that udSDK will save it’s configuration files.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the configuration location. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>By default, udSDK will attempt to use some known platform locations, in some cases failing to save entirely. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This location will have <code class="docutils literal notranslate"><span class="pre">/euclideon/udsdk</span></code> appending to the end. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pLocation</span></code>: This is a null terminated string specifying a directory to save configurations files. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
</section>
<section id="uduserutil">
<h3>udUserUtil<a class="headerlink" href="#uduserutil" title="Permalink to this headline">¶</a></h3>
<p>Helper functions related to user management </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv425udUserUtil_ChangePasswordP9udContextPKcPKc">
<span id="_CPPv325udUserUtil_ChangePasswordP9udContextPKcPKc"></span><span id="_CPPv225udUserUtil_ChangePasswordP9udContextPKcPKc"></span><span id="udUserUtil_ChangePassword__udContextP.cCP.cCP"></span><span class="target" id="ud_user_util_8h_1a47025a989dcf5fe4d0bd44598e85af09"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udUserUtil_ChangePassword</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">const</em> char *<em>pNewPassword</em>, <em class="property">const</em> char *<em>pOldPassword</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udUserUtil_ChangePasswordP9udContextPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Changes the password of a logged in session</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of changing the users password </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>It is best practice get the user to enter the new password twice to confirm they typed it correctly </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context for the user to change the password of </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNewPassword</span></code>: The password the user wants to have </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pOldPassword</span></code>: The current password for the user </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udUserUtil_RegisterPKcPKcPKcPKc8uint32_t">
<span id="_CPPv319udUserUtil_RegisterPKcPKcPKcPKc8uint32_t"></span><span id="_CPPv219udUserUtil_RegisterPKcPKcPKcPKc8uint32_t"></span><span id="udUserUtil_Register__cCP.cCP.cCP.cCP.uint32_t"></span><span class="target" id="ud_user_util_8h_1a1da90c292ba5624a3a0be86dfe247c51"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udUserUtil_Register</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pServerURL</em>, <em class="property">const</em> char *<em>pName</em>, <em class="property">const</em> char *<em>pEmail</em>, <em class="property">const</em> char *<em>pApplicationName</em>, uint32_t <em>marketingEmailOptIn</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udUserUtil_RegisterPKcPKcPKcPKc8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Attempts to register a user using the simple registration system</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of registering the user </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This will return success in a lot of ‘failure’ cases and alert the user using the email address </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>The user must actively click a check box that is clearly marked as consent to receive marketing materials via email </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pServerURL</span></code>: The address of the server to register the user on </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: The users name </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pEmail</span></code>: The users email address </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pApplicationName</span></code>: The name of this application (analytical to help us improve user experience; can be NULL) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">marketingEmailOptIn</span></code>: Not 0 if the user ACCEPTS being sent marketing material via email </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udUserUtil_ForgotPasswordPKcPKc">
<span id="_CPPv325udUserUtil_ForgotPasswordPKcPKc"></span><span id="_CPPv225udUserUtil_ForgotPasswordPKcPKc"></span><span id="udUserUtil_ForgotPassword__cCP.cCP"></span><span class="target" id="ud_user_util_8h_1a44cbcb5c5981a01db7518e0d83a20d37"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udUserUtil_ForgotPassword</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pServerURL</em>, <em class="property">const</em> char *<em>pEmail</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udUserUtil_ForgotPasswordPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sends an email with password reset instructions to the provided email</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of registering the password reset </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This will return success in a lot of ‘failure’ cases and alert the user using the email address </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pServerURL</span></code>: The address of the server to register the user on </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pEmail</span></code>: The users email address </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
</section>
</section>
<section id="loading-uds-models">
<h2>Loading UDS models<a class="headerlink" href="#loading-uds-models" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="_CPPv412udPointCloud">
<span id="_CPPv312udPointCloud"></span><span id="_CPPv212udPointCloud"></span><span id="udPointCloud"></span><span class="target" id="structud_point_cloud"></span><em class="property">struct </em><code class="sig-name descname">udPointCloud</code><a class="headerlink" href="#_CPPv412udPointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of a udSDK pointcloud </p>
</dd></dl>

<p>The <strong><a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a></strong> object provides an interface to load a Euclideon Unlimited Detail model. Once instantiated, the <strong><a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a></strong> can be queried for metadata information, and rendered with the <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a> functions. Future releases will allow users to also query the pointcloud data itself, providing the ability to export to LAS or render sub-sections of the pointcloud. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv417udPointCloud_LoadP9udContextPP12udPointCloudPKcP18udPointCloudHeader">
<span id="_CPPv317udPointCloud_LoadP9udContextPP12udPointCloudPKcP18udPointCloudHeader"></span><span id="_CPPv217udPointCloud_LoadP9udContextPP12udPointCloudPKcP18udPointCloudHeader"></span><span id="udPointCloud_Load__udContextP.udPointCloudPP.cCP.udPointCloudHeaderP"></span><span class="target" id="ud_point_cloud_8h_1a1952858e047eb452047ee3d5ce1c838b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_Load</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> **<em>ppModel</em>, <em class="property">const</em> char *<em>modelLocation</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udPointCloudHeader" title="udPointCloudHeader">udPointCloudHeader</a> *<em>pHeader</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udPointCloud_LoadP9udContextPP12udPointCloudPKcP18udPointCloudHeader" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Load a <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a> from <code class="docutils literal notranslate"><span class="pre">modelLocation</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the model load. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointCloud_Unload</strong> with <code class="docutils literal notranslate"><span class="pre">ppModel</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to be used to load the model. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppModel</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_cloud"><span class="std std-ref"><span class="pre">udPointCloud</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppModel</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">modelLocation</span></code>: The location to load the model from. This may be a file location, or a supported protocol (HTTP, HTTPS, FTP). </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pHeader</span></code>: If non-null, the provided <a class="reference internal" href="#structud_point_cloud_header"><span class="std std-ref">udPointCloudHeader</span></a> structure will be writen to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udPointCloud_LoadAdvP9udContextPP12udPointCloudPKcP18udPointCloudHeaderP23udPointCloudLoadOptions">
<span id="_CPPv320udPointCloud_LoadAdvP9udContextPP12udPointCloudPKcP18udPointCloudHeaderP23udPointCloudLoadOptions"></span><span id="_CPPv220udPointCloud_LoadAdvP9udContextPP12udPointCloudPKcP18udPointCloudHeaderP23udPointCloudLoadOptions"></span><span id="udPointCloud_LoadAdv__udContextP.udPointCloudPP.cCP.udPointCloudHeaderP.udPointCloudLoadOptionsP"></span><span class="target" id="ud_point_cloud_8h_1a7f6ef84f1c443c93184c38039b535b9f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_LoadAdv</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> **<em>ppModel</em>, <em class="property">const</em> char *<em>modelLocation</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udPointCloudHeader" title="udPointCloudHeader">udPointCloudHeader</a> *<em>pHeader</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv423udPointCloudLoadOptions" title="udPointCloudLoadOptions">udPointCloudLoadOptions</a> *<em>pOptions</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udPointCloud_LoadAdvP9udContextPP12udPointCloudPKcP18udPointCloudHeaderP23udPointCloudLoadOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Load a <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a> from <code class="docutils literal notranslate"><span class="pre">modelLocation</span></code> with additional load options.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the model load. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointCloud_Unload</strong> with <code class="docutils literal notranslate"><span class="pre">ppModel</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to be used to load the model. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppModel</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_cloud"><span class="std std-ref"><span class="pre">udPointCloud</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppModel</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">modelLocation</span></code>: The location to load the model from. This may be a file location, or a supported protocol (HTTP, HTTPS, FTP). </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pHeader</span></code>: If non-null, the provided <a class="reference internal" href="#structud_point_cloud_header"><span class="std std-ref">udPointCloudHeader</span></a> structure will be writen to </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pOptions</span></code>: If non-null, the options to be applied when loading the model. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udPointCloud_UnloadPP12udPointCloud">
<span id="_CPPv319udPointCloud_UnloadPP12udPointCloud"></span><span id="_CPPv219udPointCloud_UnloadPP12udPointCloud"></span><span id="udPointCloud_Unload__udPointCloudPP"></span><span class="target" id="ud_point_cloud_8h_1ac8ffa37e152f34f4d11717865d113b4e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_Unload</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> **<em>ppModel</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udPointCloud_UnloadPP12udPointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the model unload. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppModel</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppModel</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a>. This will deallocate any internal memory used. It may take a few frames before the streamer releases the internal memory. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udPointCloud_GetMetadataP12udPointCloudPPKc">
<span id="_CPPv324udPointCloud_GetMetadataP12udPointCloudPPKc"></span><span id="_CPPv224udPointCloud_GetMetadataP12udPointCloudPPKc"></span><span id="udPointCloud_GetMetadata__udPointCloudP.cCPP"></span><span class="target" id="ud_point_cloud_8h_1ab7576737fe71c04d86048f5bf1be0042"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetMetadata</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pPointCloud</em>, <em class="property">const</em> char **<em>ppJSONMetadata</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udPointCloud_GetMetadataP12udPointCloudPPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the metadata associated with this object.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the model metadata. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCloud</span></code>: The point cloud model to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppJSONMetadata</span></code>: The metadata(in JSON) from the model. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udPointCloud_GetHeaderP12udPointCloudP18udPointCloudHeader">
<span id="_CPPv322udPointCloud_GetHeaderP12udPointCloudP18udPointCloudHeader"></span><span id="_CPPv222udPointCloud_GetHeaderP12udPointCloudP18udPointCloudHeader"></span><span id="udPointCloud_GetHeader__udPointCloudP.udPointCloudHeaderP"></span><span class="target" id="ud_point_cloud_8h_1ab594263cb49b8bfeb9bdf48fa6aeecdd"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetHeader</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pPointCloud</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udPointCloudHeader" title="udPointCloudHeader">udPointCloudHeader</a> *<em>pHeader</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udPointCloud_GetHeaderP12udPointCloudP18udPointCloudHeader" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the matrix of this model.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the model header. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>All Unlimited Detail models are assumed to be from { 0, 0, 0 } to { 1, 1, 1 }. Any scaling applied to the model will be in this matrix along with the translation and rotation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCloud</span></code>: The point cloud model to get the matrix from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pHeader</span></code>: The header structure to fill out </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udPointCloud_ExportP12udPointCloudPKcPK10udGeometryPf">
<span id="_CPPv319udPointCloud_ExportP12udPointCloudPKcPK10udGeometryPf"></span><span id="_CPPv219udPointCloud_ExportP12udPointCloudPKcPK10udGeometryPf"></span><span id="udPointCloud_Export__udPointCloudP.cCP.udGeometryCP.floatP"></span><span class="target" id="ud_point_cloud_8h_1ad664db6ba89a1b6d373f61f1457ceb54"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_Export</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em>, <em class="property">const</em> char *<em>pExportFilename</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pFilter</em>, float *<em>pProgress</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udPointCloud_ExportP12udPointCloudPKcPK10udGeometryPf" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Exports a point cloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the model export </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>If an existing file exists this function will try override it </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The loaded pointcloud to export. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pExportFilename</span></code>: The path and filename to export the point cloud to. This should be a file location with write permissions. Supported formats are .UDS and .LAS. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilter</span></code>: If non-NULL this filter will be applied on the export to export a subsection </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pProgress</span></code>: If non-NULL, this will be updated with a (estimated) progress throughout the export. Ranges between 0.f - 1.f </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udPointCloud_GetNodeColourPK12udPointCloudPK9udVoxelIDP8uint32_t">
<span id="_CPPv326udPointCloud_GetNodeColourPK12udPointCloudPK9udVoxelIDP8uint32_t"></span><span id="_CPPv226udPointCloud_GetNodeColourPK12udPointCloudPK9udVoxelIDP8uint32_t"></span><span id="udPointCloud_GetNodeColour__udPointCloudCP.udVoxelIDCP.uint32_tP"></span><span class="target" id="ud_point_cloud_8h_1a85990a952cbc1d4fe14ebcba3ba3957a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetNodeColour</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv49udVoxelID" title="udVoxelID">udVoxelID</a> *<em>pVoxelID</em>, uint32_t *<em>pColour</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udPointCloud_GetNodeColourPK12udPointCloudPK9udVoxelIDP8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the default colour for a specific voxel in a given point cloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the colour </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>Calling this with invalid inputs can easily crash the program </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The point cloud to get a default colour for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pVoxelID</span></code>: The voxelID provided by picking or to voxel shaders </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pColour</span></code>: The address to write the colour of the given voxel to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udPointCloud_GetNodeColour64PK12udPointCloudPK9udVoxelIDP8uint64_t">
<span id="_CPPv328udPointCloud_GetNodeColour64PK12udPointCloudPK9udVoxelIDP8uint64_t"></span><span id="_CPPv228udPointCloud_GetNodeColour64PK12udPointCloudPK9udVoxelIDP8uint64_t"></span><span id="udPointCloud_GetNodeColour64__udPointCloudCP.udVoxelIDCP.uint64_tP"></span><span class="target" id="ud_point_cloud_8h_1a795255100e9115441bc89ff49cc10cf2"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetNodeColour64</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv49udVoxelID" title="udVoxelID">udVoxelID</a> *<em>pVoxelID</em>, uint64_t *<em>pColour</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udPointCloud_GetNodeColour64PK12udPointCloudPK9udVoxelIDP8uint64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the default colour for a specific voxel in a given point cloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the colour </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>Calling this with invalid inputs can easily crash the program </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The point cloud to get a default colour for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pVoxelID</span></code>: The voxelID provided by picking or to voxel shaders </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pColour</span></code>: The address to write the colour of the given voxel to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv432udPointCloud_GetAttributeAddressP12udPointCloudPK9udVoxelID8uint32_tPPKv">
<span id="_CPPv332udPointCloud_GetAttributeAddressP12udPointCloudPK9udVoxelID8uint32_tPPKv"></span><span id="_CPPv232udPointCloud_GetAttributeAddressP12udPointCloudPK9udVoxelID8uint32_tPPKv"></span><span id="udPointCloud_GetAttributeAddress__udPointCloudP.udVoxelIDCP.uint32_t.voidCPP"></span><span class="target" id="ud_point_cloud_8h_1ae2bd1276e36b36c9e1c4432ac0c72220"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetAttributeAddress</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv49udVoxelID" title="udVoxelID">udVoxelID</a> *<em>pVoxelID</em>, uint32_t <em>attributeOffset</em>, <em class="property">const</em> void **<em>ppAttributeAddress</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432udPointCloud_GetAttributeAddressP12udPointCloudPK9udVoxelID8uint32_tPPKv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the pointer to the attribute offset on a specific voxel in a point cloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the attribute address </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>Calling this with invalid inputs can easily crash the program </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The point cloud to get an address for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pVoxelID</span></code>: The node provided by picking or to voxel shaders </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">attributeOffset</span></code>: The attribute offset from udAttributeSet_GetOffsetOfNamedAttribute or udAttributeSet_GetOffsetOfStandardAttribute </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppAttributeAddress</span></code>: The pointer will be updated with the address to the attribute </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv431udPointCloud_GetStreamingStatusP12udPointCloud">
<span id="_CPPv331udPointCloud_GetStreamingStatusP12udPointCloud"></span><span id="_CPPv231udPointCloud_GetStreamingStatusP12udPointCloud"></span><span id="udPointCloud_GetStreamingStatus__udPointCloudP"></span><span class="target" id="ud_point_cloud_8h_1a6ac0bcf19774dade68bc69e7b0ef3dab"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetStreamingStatus</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431udPointCloud_GetStreamingStatusP12udPointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the streamer status for the model</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value indicating the internal streamer status for this model. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>udE_Success indicates the model is streaming successfully, other errors indicate other specific issues </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The point cloud to get the status of. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv432udPointCloud_GetSourceAttributesP12udPointCloudP14udAttributeSet">
<span id="_CPPv332udPointCloud_GetSourceAttributesP12udPointCloudP14udAttributeSet"></span><span id="_CPPv232udPointCloud_GetSourceAttributesP12udPointCloudP14udAttributeSet"></span><span id="udPointCloud_GetSourceAttributes__udPointCloudP.udAttributeSetP"></span><span class="target" id="ud_point_cloud_8h_1ab1d18ed8c7d6b5eff5380ecf3425cbae"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_GetSourceAttributes</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributeSet</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432udPointCloud_GetSourceAttributesP12udPointCloudP14udAttributeSet" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a> of the model</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value indicating success of fetching the attributes </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>udAttributeSet_Destroy must be called on pAttributeSet </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The point cloud to get original attributes of. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeSet</span></code>: The attributeSet to be populated </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udPointCloud_SetAntiOctreeP12udPointCloudP12udPointCloud">
<span id="_CPPv326udPointCloud_SetAntiOctreeP12udPointCloudP12udPointCloud"></span><span id="_CPPv226udPointCloud_SetAntiOctreeP12udPointCloudP12udPointCloud"></span><span id="udPointCloud_SetAntiOctree__udPointCloudP.udPointCloudP"></span><span class="target" id="ud_point_cloud_8h_1a2cccc1b3381ce44dab3b74382b24f52d"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointCloud_SetAntiOctree</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pModel</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pAntiOctreeModel</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udPointCloud_SetAntiOctreeP12udPointCloudP12udPointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the Anti Octree of the model</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value indicating success setting the anti octree to this PointCloud </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pModel</span></code>: The point cloud to get assigned a new Anti Octree. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAntiOctreeModel</span></code>: The point cloud to be used as anti octree </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv49udVoxelID">
<span id="_CPPv39udVoxelID"></span><span id="_CPPv29udVoxelID"></span><span id="udVoxelID"></span><span class="target" id="structud_voxel_i_d"></span><em class="property">struct </em><code class="sig-name descname">udVoxelID</code><a class="headerlink" href="#_CPPv49udVoxelID" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointCloud.h&gt;</em><p>Combines the traverse context and node index to uniquely identify a node </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N9udVoxelID5indexE">
<span id="_CPPv3N9udVoxelID5indexE"></span><span id="_CPPv2N9udVoxelID5indexE"></span><span id="udVoxelID::index__uint64_t"></span><span class="target" id="structud_voxel_i_d_1a2fee0d2f84468b0b3490d672acde7367"></span>uint64_t <code class="sig-name descname">index</code><a class="headerlink" href="#_CPPv4N9udVoxelID5indexE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internal index value. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N9udVoxelID5pTravE">
<span id="_CPPv3N9udVoxelID5pTravE"></span><span id="_CPPv2N9udVoxelID5pTravE"></span><span id="udVoxelID::pTrav__voidCP"></span><span class="target" id="structud_voxel_i_d_1a4da9fcbadeefd0ab04e3987c7f7a7dd9"></span><em class="property">const</em> void *<code class="sig-name descname">pTrav</code><a class="headerlink" href="#_CPPv4N9udVoxelID5pTravE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internal traverse info. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N9udVoxelID11pRenderInfoE">
<span id="_CPPv3N9udVoxelID11pRenderInfoE"></span><span id="_CPPv2N9udVoxelID11pRenderInfoE"></span><span id="udVoxelID::pRenderInfo__voidP"></span><span class="target" id="structud_voxel_i_d_1a4ee3ef5721d4e10dbbc5009330413567"></span>void *<code class="sig-name descname">pRenderInfo</code><a class="headerlink" href="#_CPPv4N9udVoxelID11pRenderInfoE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internal render info. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv418udPointCloudHeader">
<span id="_CPPv318udPointCloudHeader"></span><span id="_CPPv218udPointCloudHeader"></span><span id="udPointCloudHeader"></span><span class="target" id="structud_point_cloud_header"></span><em class="property">struct </em><code class="sig-name descname">udPointCloudHeader</code><a class="headerlink" href="#_CPPv418udPointCloudHeader" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointCloud.h&gt;</em><p>Stores basic information about a <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a> </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader11scaledRangeE">
<span id="_CPPv3N18udPointCloudHeader11scaledRangeE"></span><span id="_CPPv2N18udPointCloudHeader11scaledRangeE"></span><span id="udPointCloudHeader::scaledRange__double"></span><span class="target" id="structud_point_cloud_header_1ab957be1f546e4d2b12c6925baba3cd93"></span>double <code class="sig-name descname">scaledRange</code><a class="headerlink" href="#_CPPv4N18udPointCloudHeader11scaledRangeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The point cloud’s range multiplied by the voxel size. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader14unitMeterScaleE">
<span id="_CPPv3N18udPointCloudHeader14unitMeterScaleE"></span><span id="_CPPv2N18udPointCloudHeader14unitMeterScaleE"></span><span id="udPointCloudHeader::unitMeterScale__double"></span><span class="target" id="structud_point_cloud_header_1abbb1f24e1dac1b002238cd22948b9501"></span>double <code class="sig-name descname">unitMeterScale</code><a class="headerlink" href="#_CPPv4N18udPointCloudHeader14unitMeterScaleE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The scale to apply to convert to/from metres (after scaledRange is applied to the unitCube) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader14totalLODLayersE">
<span id="_CPPv3N18udPointCloudHeader14totalLODLayersE"></span><span id="_CPPv2N18udPointCloudHeader14totalLODLayersE"></span><span id="udPointCloudHeader::totalLODLayers__uint32_t"></span><span class="target" id="structud_point_cloud_header_1a57389adc4b43181c6323591df25c402a"></span>uint32_t <code class="sig-name descname">totalLODLayers</code><a class="headerlink" href="#_CPPv4N18udPointCloudHeader14totalLODLayersE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The total number of LOD layers in this octree. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader19convertedResolutionE">
<span id="_CPPv3N18udPointCloudHeader19convertedResolutionE"></span><span id="_CPPv2N18udPointCloudHeader19convertedResolutionE"></span><span id="udPointCloudHeader::convertedResolution__double"></span><span class="target" id="structud_point_cloud_header_1a44fc48b5a654a76821d1ee062aa33160"></span>double <code class="sig-name descname">convertedResolution</code><a class="headerlink" href="#_CPPv4N18udPointCloudHeader19convertedResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The resolution this model was converted at. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader12storedMatrixE">
<span id="_CPPv3N18udPointCloudHeader12storedMatrixE"></span><span id="_CPPv2N18udPointCloudHeader12storedMatrixE"></span><span id="udPointCloudHeader::storedMatrix__doubleA"></span><span class="target" id="structud_point_cloud_header_1a41c4c70af6690131e801516502f7bc8b"></span>double <code class="sig-name descname">storedMatrix</code>[16]<a class="headerlink" href="#_CPPv4N18udPointCloudHeader12storedMatrixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This matrix is the ‘default’ internal matrix to go from a unit cube to the full size. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader10attributesE">
<span id="_CPPv3N18udPointCloudHeader10attributesE"></span><span id="_CPPv2N18udPointCloudHeader10attributesE"></span><span id="udPointCloudHeader::attributes__udAttributeSet"></span><span class="target" id="structud_point_cloud_header_1aad1ddde2c44a46e9ff6059b46a95ed56"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> <code class="sig-name descname">attributes</code><a class="headerlink" href="#_CPPv4N18udPointCloudHeader10attributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The attributes contained in this pointcloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader10baseOffsetE">
<span id="_CPPv3N18udPointCloudHeader10baseOffsetE"></span><span id="_CPPv2N18udPointCloudHeader10baseOffsetE"></span><span id="udPointCloudHeader::baseOffset__doubleA"></span><span class="target" id="structud_point_cloud_header_1a7a147bcbe821b53a6af3cc16702e735c"></span>double <code class="sig-name descname">baseOffset</code>[3]<a class="headerlink" href="#_CPPv4N18udPointCloudHeader10baseOffsetE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The offset to the root of the pointcloud in unit cube space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader5pivotE">
<span id="_CPPv3N18udPointCloudHeader5pivotE"></span><span id="_CPPv2N18udPointCloudHeader5pivotE"></span><span id="udPointCloudHeader::pivot__doubleA"></span><span class="target" id="structud_point_cloud_header_1a8a089ea115d48ad30ea84bb4b5d7ae8d"></span>double <code class="sig-name descname">pivot</code>[3]<a class="headerlink" href="#_CPPv4N18udPointCloudHeader5pivotE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The pivot point of the model, in unit cube space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader17boundingBoxCenterE">
<span id="_CPPv3N18udPointCloudHeader17boundingBoxCenterE"></span><span id="_CPPv2N18udPointCloudHeader17boundingBoxCenterE"></span><span id="udPointCloudHeader::boundingBoxCenter__doubleA"></span><span class="target" id="structud_point_cloud_header_1aea34a344a7b7775e46915a750ae961ec"></span>double <code class="sig-name descname">boundingBoxCenter</code>[3]<a class="headerlink" href="#_CPPv4N18udPointCloudHeader17boundingBoxCenterE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The center of the bounding volume, in unit cube space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udPointCloudHeader18boundingBoxExtentsE">
<span id="_CPPv3N18udPointCloudHeader18boundingBoxExtentsE"></span><span id="_CPPv2N18udPointCloudHeader18boundingBoxExtentsE"></span><span id="udPointCloudHeader::boundingBoxExtents__doubleA"></span><span class="target" id="structud_point_cloud_header_1a4a78ea1c7659485e15f18b112c3d23a6"></span>double <code class="sig-name descname">boundingBoxExtents</code>[3]<a class="headerlink" href="#_CPPv4N18udPointCloudHeader18boundingBoxExtentsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The extents of the bounding volume, in unit cube space. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv423udPointCloudLoadOptions">
<span id="_CPPv323udPointCloudLoadOptions"></span><span id="_CPPv223udPointCloudLoadOptions"></span><span id="udPointCloudLoadOptions"></span><span class="target" id="structud_point_cloud_load_options"></span><em class="property">struct </em><code class="sig-name descname">udPointCloudLoadOptions</code><a class="headerlink" href="#_CPPv423udPointCloudLoadOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointCloud.h&gt;</em><p>Contains additional loading options passed to <code class="docutils literal notranslate"><span class="pre">udPointCloud_LoadAdv</span></code> </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N23udPointCloudLoadOptions23numberAttributesLimitedE">
<span id="_CPPv3N23udPointCloudLoadOptions23numberAttributesLimitedE"></span><span id="_CPPv2N23udPointCloudLoadOptions23numberAttributesLimitedE"></span><span id="udPointCloudLoadOptions::numberAttributesLimited__uint32_t"></span><span class="target" id="structud_point_cloud_load_options_1a6dc71a1b4291462dce541029101133ce"></span>uint32_t <code class="sig-name descname">numberAttributesLimited</code><a class="headerlink" href="#_CPPv4N23udPointCloudLoadOptions23numberAttributesLimitedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>indicates whether to limit attributes uing the limitAttributes array </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udPointCloudLoadOptions18pLimitedAttributesE">
<span id="_CPPv3N23udPointCloudLoadOptions18pLimitedAttributesE"></span><span id="_CPPv2N23udPointCloudLoadOptions18pLimitedAttributesE"></span><span id="udPointCloudLoadOptions::pLimitedAttributes__uint32_tP"></span><span class="target" id="structud_point_cloud_load_options_1a417d5c8ea527f8098e57b583ee6c4bbe"></span>uint32_t *<code class="sig-name descname">pLimitedAttributes</code><a class="headerlink" href="#_CPPv4N23udPointCloudLoadOptions18pLimitedAttributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>array of booleans corresponding to the pAttributes array in the models original <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a> indicating which attributes to load from the pointcloud </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="rendering-loaded-uds-models">
<h2>Rendering loaded UDS models<a class="headerlink" href="#rendering-loaded-uds-models" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="_CPPv415udRenderContext">
<span id="_CPPv315udRenderContext"></span><span id="_CPPv215udRenderContext"></span><span id="udRenderContext"></span><span class="target" id="structud_render_context"></span><em class="property">struct </em><code class="sig-name descname">udRenderContext</code><a class="headerlink" href="#_CPPv415udRenderContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of the udSDK render system </p>
</dd></dl>

<dl class="class">
<dt id="_CPPv414udRenderTarget">
<span id="_CPPv314udRenderTarget"></span><span id="_CPPv214udRenderTarget"></span><span id="udRenderTarget"></span><span class="target" id="structud_render_target"></span><em class="property">struct </em><code class="sig-name descname">udRenderTarget</code><a class="headerlink" href="#_CPPv414udRenderTarget" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of a udSDK render target </p>
</dd></dl>

<p>The <strong><a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a></strong> object provides an interface to render Euclideon Unlimited Detail models. It provides the ability to render by colour, intensity or classification; additionally allowing the user to query a specific pixel for information about the pointcloud data. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv424udRenderContextPointMode">
<span id="_CPPv324udRenderContextPointMode"></span><span id="_CPPv224udRenderContextPointMode"></span><span class="target" id="ud_render_context_8h_1abfbf8ab338649452a381642a93895e14"></span><em class="property">enum </em><code class="sig-name descname">udRenderContextPointMode</code><a class="headerlink" href="#_CPPv424udRenderContextPointMode" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the various point modes available in udSDK </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv417udRCPM_Rectangles">
<span id="_CPPv317udRCPM_Rectangles"></span><span id="_CPPv217udRCPM_Rectangles"></span><span class="target" id="ud_render_context_8h_1abfbf8ab338649452a381642a93895e14a9bbd2177f1447c0b1263722bde8b78e1"></span><code class="sig-name descname">udRCPM_Rectangles</code><a class="headerlink" href="#_CPPv417udRCPM_Rectangles" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This is the default, renders the voxels expanded as screen space rectangles. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udRCPM_Cubes">
<span id="_CPPv312udRCPM_Cubes"></span><span id="_CPPv212udRCPM_Cubes"></span><span class="target" id="ud_render_context_8h_1abfbf8ab338649452a381642a93895e14abb1ff8b5957df1ccf94981a20660ccd8"></span><code class="sig-name descname">udRCPM_Cubes</code><a class="headerlink" href="#_CPPv412udRCPM_Cubes" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Renders the voxels as cubes. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udRCPM_Points">
<span id="_CPPv313udRCPM_Points"></span><span id="_CPPv213udRCPM_Points"></span><span class="target" id="ud_render_context_8h_1abfbf8ab338649452a381642a93895e14af8d0900087a5d67cb85c711e40932d06"></span><code class="sig-name descname">udRCPM_Points</code><a class="headerlink" href="#_CPPv413udRCPM_Points" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Renders voxels as a single point (Note: does not accurately reflect the ‘size’ of voxels) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udRCPM_Count">
<span id="_CPPv312udRCPM_Count"></span><span id="_CPPv212udRCPM_Count"></span><span class="target" id="ud_render_context_8h_1abfbf8ab338649452a381642a93895e14ab87e4bd636f87cb7c29d121cef2e695e"></span><code class="sig-name descname">udRCPM_Count</code><a class="headerlink" href="#_CPPv412udRCPM_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of point modes. Used internally but can be used as an iterator max when displaying different point modes. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv420udRenderContextFlags">
<span id="_CPPv320udRenderContextFlags"></span><span id="_CPPv220udRenderContextFlags"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7f"></span><em class="property">enum </em><code class="sig-name descname">udRenderContextFlags</code><a class="headerlink" href="#_CPPv420udRenderContextFlags" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the various render flags available in udSDK </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv410udRCF_None">
<span id="_CPPv310udRCF_None"></span><span id="_CPPv210udRCF_None"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7faaa0c5ccb2edbcc59c0af648f3843206a"></span><code class="sig-name descname">udRCF_None</code> = 0<a class="headerlink" href="#_CPPv410udRCF_None" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Render the points using the default configuration. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udRCF_PreserveBuffers">
<span id="_CPPv321udRCF_PreserveBuffers"></span><span id="_CPPv221udRCF_PreserveBuffers"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa8f009eec2487a53f2f0db723977083f1"></span><code class="sig-name descname">udRCF_PreserveBuffers</code> = 1 &lt;&lt; 0<a class="headerlink" href="#_CPPv421udRCF_PreserveBuffers" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The colour and depth buffers won’t be cleared before drawing and existing depth will be respected. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv426udRCF_ComplexIntersections">
<span id="_CPPv326udRCF_ComplexIntersections"></span><span id="_CPPv226udRCF_ComplexIntersections"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa7158baaaaa85bc3d212640cb781313c6"></span><code class="sig-name descname">udRCF_ComplexIntersections</code> = 1 &lt;&lt; 1<a class="headerlink" href="#_CPPv426udRCF_ComplexIntersections" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This flag is required in some scenes where there is a very large amount of intersecting point clouds It will internally batch rendering with the udRCF_PreserveBuffers flag after the first render. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv423udRCF_BlockingStreaming">
<span id="_CPPv323udRCF_BlockingStreaming"></span><span id="_CPPv223udRCF_BlockingStreaming"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fadc9b3def9108feb4506ed0790eabdb79"></span><code class="sig-name descname">udRCF_BlockingStreaming</code> = 1 &lt;&lt; 2<a class="headerlink" href="#_CPPv423udRCF_BlockingStreaming" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This forces the streamer to load as much of the pointcloud as required to give an accurate representation in the current view. A small amount of further refinement may still occur. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv422udRCF_LogarithmicDepth">
<span id="_CPPv322udRCF_LogarithmicDepth"></span><span id="_CPPv222udRCF_LogarithmicDepth"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fac22092c8e3014f6442f5812e09074752"></span><code class="sig-name descname">udRCF_LogarithmicDepth</code> = 1 &lt;&lt; 3<a class="headerlink" href="#_CPPv422udRCF_LogarithmicDepth" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Calculate the depth as a logarithmic distribution. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv426udRCF_ManualStreamerUpdate">
<span id="_CPPv326udRCF_ManualStreamerUpdate"></span><span id="_CPPv226udRCF_ManualStreamerUpdate"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa5014b993c30adfc2d308ea7aafd68afe"></span><code class="sig-name descname">udRCF_ManualStreamerUpdate</code> = 1 &lt;&lt; 4<a class="headerlink" href="#_CPPv426udRCF_ManualStreamerUpdate" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The streamer won’t be updated internally but a render call without this flag or a manual streamer update will be required. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udRCF_ZeroAlphaSkip">
<span id="_CPPv319udRCF_ZeroAlphaSkip"></span><span id="_CPPv219udRCF_ZeroAlphaSkip"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa4c991caf0e3c94954c9600a25253adeb"></span><code class="sig-name descname">udRCF_ZeroAlphaSkip</code> = 1 &lt;&lt; 5<a class="headerlink" href="#_CPPv419udRCF_ZeroAlphaSkip" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If the voxel has 0 alpha (upper 8 bits) after the voxel shader then the voxel will not be drawn to the buffers (effectively skipped) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udRCF_2PixelOpt">
<span id="_CPPv315udRCF_2PixelOpt"></span><span id="_CPPv215udRCF_2PixelOpt"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa9d1740e7c5a1f22ec03b8972195af7d5"></span><code class="sig-name descname">udRCF_2PixelOpt</code> = 1 &lt;&lt; 6<a class="headerlink" href="#_CPPv415udRCF_2PixelOpt" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optimisation that allows the renderer to resolve the last 2 pixels simulataneously, this can result in slight inaccuracies (generally a few pixels) in the final image for a huge performance improvement. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udRCF_DisableOrthographic">
<span id="_CPPv325udRCF_DisableOrthographic"></span><span id="_CPPv225udRCF_DisableOrthographic"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa0e8f7bb6048a0b19e5e974a4d98418c8"></span><code class="sig-name descname">udRCF_DisableOrthographic</code> = 1 &lt;&lt; 7<a class="headerlink" href="#_CPPv425udRCF_DisableOrthographic" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Disables the renderer entering high-performance orthographic mode. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udRCF_NoTraversal">
<span id="_CPPv317udRCF_NoTraversal"></span><span id="_CPPv217udRCF_NoTraversal"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7fa709b98d2faaf2605fc104d00997833ea"></span><code class="sig-name descname">udRCF_NoTraversal</code> = 1 &lt;&lt; 8<a class="headerlink" href="#_CPPv417udRCF_NoTraversal" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Skip octree traversal, instead reuse existing data from previous traversal. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv430udRCF_DisableDrawCallFiltering">
<span id="_CPPv330udRCF_DisableDrawCallFiltering"></span><span id="_CPPv230udRCF_DisableDrawCallFiltering"></span><span class="target" id="ud_render_context_8h_1a5292cac4b35bf356e3e465c900d07e7faca7d5809af1a5017b0451fd98e6bbdd3"></span><code class="sig-name descname">udRCF_DisableDrawCallFiltering</code> = 1 &lt;&lt; 9<a class="headerlink" href="#_CPPv430udRCF_DisableDrawCallFiltering" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Disables the splitting of blocks into multiple draw calls, when a filter is active. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv422udRenderContext_CreateP9udContextPP15udRenderContext">
<span id="_CPPv322udRenderContext_CreateP9udContextPP15udRenderContext"></span><span id="_CPPv222udRenderContext_CreateP9udContextPP15udRenderContext"></span><span id="udRenderContext_Create__udContextP.udRenderContextPP"></span><span class="target" id="ud_render_context_8h_1a65c24ba1648f5fbc49f26c97897dcc9b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderContext_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv415udRenderContext" title="udRenderContext">udRenderContext</a> **<em>ppRenderer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udRenderContext_CreateP9udContextPP15udRenderContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_render_context"><span class="std std-ref"><span class="pre">udRenderContext</span></span></a></code> for rendering.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render context creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>It is not recommended to have more than one instance of <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to be used to create the render context. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppRenderer</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a> into <code class="docutils literal notranslate"><span class="pre">ppRenderer</span></code>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udRenderContext_DestroyPP15udRenderContext">
<span id="_CPPv323udRenderContext_DestroyPP15udRenderContext"></span><span id="_CPPv223udRenderContext_DestroyPP15udRenderContext"></span><span id="udRenderContext_Destroy__udRenderContextPP"></span><span class="target" id="ud_render_context_8h_1a26b593d29458ca519c2ca4df67d30906"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderContext_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udRenderContext" title="udRenderContext">udRenderContext</a> **<em>ppRenderer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udRenderContext_DestroyPP15udRenderContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroy the instance of the renderer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render context destruction. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppRenderer</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a>. This will deallocate the instance of <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings">
<span id="_CPPv322udRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings"></span><span id="_CPPv222udRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings"></span><span id="udRenderContext_Render__udRenderContextP.udRenderTargetP.udRenderInstanceP.i.udRenderSettingsP"></span><span class="target" id="ud_render_context_8h_1a9227b218eaf6e61333e077c73830c847"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderContext_Render</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udRenderContext" title="udRenderContext">udRenderContext</a> *<em>pRenderer</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderView</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udRenderInstance" title="udRenderInstance">udRenderInstance</a> *<em>pModels</em>, int <em>modelCount</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udRenderSettings" title="udRenderSettings">udRenderSettings</a> *<em>pRenderOptions</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Render the models from the perspective of <code class="docutils literal notranslate"><span class="pre">pRenderView</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderer</span></code>: The renderer to render the scene. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderView</span></code>: The view to render from with the render buffers associated with it being filled out. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pModels</span></code>: The array of models to use in render. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">modelCount</span></code>: The amount of models in pModels. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderOptions</span></code>: Additional render options. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv415udRenderPicking">
<span id="_CPPv315udRenderPicking"></span><span id="_CPPv215udRenderPicking"></span><span id="udRenderPicking"></span><span class="target" id="structud_render_picking"></span><em class="property">struct </em><code class="sig-name descname">udRenderPicking</code><a class="headerlink" href="#_CPPv415udRenderPicking" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udRenderContext.h&gt;</em><p>Stores both the input and output of the udSDK picking system </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N15udRenderPicking1xE">
<span id="_CPPv3N15udRenderPicking1xE"></span><span id="_CPPv2N15udRenderPicking1xE"></span><span id="udRenderPicking::x__unsigned-i"></span><span class="target" id="structud_render_picking_1a3141bb4c201e68f29bd283b68648c93c"></span>unsigned int <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N15udRenderPicking1xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Mouse X position in <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a> space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udRenderPicking1yE">
<span id="_CPPv3N15udRenderPicking1yE"></span><span id="_CPPv2N15udRenderPicking1yE"></span><span id="udRenderPicking::y__unsigned-i"></span><span class="target" id="structud_render_picking_1a4fc40a818dc2e96a2d7372815932824e"></span>unsigned int <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N15udRenderPicking1yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Mouse Y position in <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a> space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udRenderPicking3hitE">
<span id="_CPPv3N15udRenderPicking3hitE"></span><span id="_CPPv2N15udRenderPicking3hitE"></span><span id="udRenderPicking::hit__uint32_t"></span><span class="target" id="structud_render_picking_1a81a50be282db4db0bce1731dca4054ca"></span>uint32_t <code class="sig-name descname">hit</code><a class="headerlink" href="#_CPPv4N15udRenderPicking3hitE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Not 0 if a voxel was hit by this pick. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udRenderPicking12isHighestLODE">
<span id="_CPPv3N15udRenderPicking12isHighestLODE"></span><span id="_CPPv2N15udRenderPicking12isHighestLODE"></span><span id="udRenderPicking::isHighestLOD__uint32_t"></span><span class="target" id="structud_render_picking_1ab31497b3814f6258a7470e8365bed770"></span>uint32_t <code class="sig-name descname">isHighestLOD</code><a class="headerlink" href="#_CPPv4N15udRenderPicking12isHighestLODE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Not 0 if this voxel that was hit is as precise as possible. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udRenderPicking10modelIndexE">
<span id="_CPPv3N15udRenderPicking10modelIndexE"></span><span id="_CPPv2N15udRenderPicking10modelIndexE"></span><span id="udRenderPicking::modelIndex__unsigned-i"></span><span class="target" id="structud_render_picking_1aada3480c597543dbd8931e1ba2a9e24f"></span>unsigned int <code class="sig-name descname">modelIndex</code><a class="headerlink" href="#_CPPv4N15udRenderPicking10modelIndexE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Index of the model in the ppModels list. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udRenderPicking11pointCenterE">
<span id="_CPPv3N15udRenderPicking11pointCenterE"></span><span id="_CPPv2N15udRenderPicking11pointCenterE"></span><span id="udRenderPicking::pointCenter__doubleA"></span><span class="target" id="structud_render_picking_1abf43c0b6b12153e970e113cdd28e9cc1"></span>double <code class="sig-name descname">pointCenter</code>[3]<a class="headerlink" href="#_CPPv4N15udRenderPicking11pointCenterE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The center of the hit voxel in world space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udRenderPicking7voxelIDE">
<span id="_CPPv3N15udRenderPicking7voxelIDE"></span><span id="_CPPv2N15udRenderPicking7voxelIDE"></span><span id="udRenderPicking::voxelID__udVoxelID"></span><span class="target" id="structud_render_picking_1a1992abc13c241aea39b4dde6b776937a"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udVoxelID" title="udVoxelID">udVoxelID</a> <code class="sig-name descname">voxelID</code><a class="headerlink" href="#_CPPv4N15udRenderPicking7voxelIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The ID of the voxel that was hit by the pick; this ID is only valid for a very short period of time- Do any additional work using this ID this frame. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv416udRenderSettings">
<span id="_CPPv316udRenderSettings"></span><span id="_CPPv216udRenderSettings"></span><span id="udRenderSettings"></span><span class="target" id="structud_render_settings"></span><em class="property">struct </em><code class="sig-name descname">udRenderSettings</code><a class="headerlink" href="#_CPPv416udRenderSettings" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udRenderContext.h&gt;</em><p>Stores the render settings used per render </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udRenderSettings5flagsE">
<span id="_CPPv3N16udRenderSettings5flagsE"></span><span id="_CPPv2N16udRenderSettings5flagsE"></span><span id="udRenderSettings::flags__udRenderContextFlags"></span><span class="target" id="structud_render_settings_1ad35f1ac2fe2e13c8743bf5423d5713cd"></span><a class="reference internal" href="#_CPPv420udRenderContextFlags" title="udRenderContextFlags">udRenderContextFlags</a> <code class="sig-name descname">flags</code><a class="headerlink" href="#_CPPv4N16udRenderSettings5flagsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional flags providing information about how to perform this render. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderSettings5pPickE">
<span id="_CPPv3N16udRenderSettings5pPickE"></span><span id="_CPPv2N16udRenderSettings5pPickE"></span><span id="udRenderSettings::pPick__udRenderPickingP"></span><span class="target" id="structud_render_settings_1a19b0cc71ee1ca988a9155fe33965e99d"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udRenderPicking" title="udRenderPicking">udRenderPicking</a> *<code class="sig-name descname">pPick</code><a class="headerlink" href="#_CPPv4N16udRenderSettings5pPickE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional This provides information about the voxel under the mouse. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderSettings9pointModeE">
<span id="_CPPv3N16udRenderSettings9pointModeE"></span><span id="_CPPv2N16udRenderSettings9pointModeE"></span><span id="udRenderSettings::pointMode__udRenderContextPointMode"></span><span class="target" id="structud_render_settings_1ad0c1e4f3ac99162c58204769db47d557"></span><a class="reference internal" href="#_CPPv424udRenderContextPointMode" title="udRenderContextPointMode">udRenderContextPointMode</a> <code class="sig-name descname">pointMode</code><a class="headerlink" href="#_CPPv4N16udRenderSettings9pointModeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The point mode for this render. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderSettings7pFilterE">
<span id="_CPPv3N16udRenderSettings7pFilterE"></span><span id="_CPPv2N16udRenderSettings7pFilterE"></span><span id="udRenderSettings::pFilter__udGeometryP"></span><span class="target" id="structud_render_settings_1ac6f9771f225b447a89703671564f5b4b"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<code class="sig-name descname">pFilter</code><a class="headerlink" href="#_CPPv4N16udRenderSettings7pFilterE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional This filter is applied to all models in the scene. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderSettings10pointCountE">
<span id="_CPPv3N16udRenderSettings10pointCountE"></span><span id="_CPPv2N16udRenderSettings10pointCountE"></span><span id="udRenderSettings::pointCount__uint32_t"></span><span class="target" id="structud_render_settings_1af636e7989d1b810e5ba852c56e3e434d"></span>uint32_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N16udRenderSettings10pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional (GPU Renderer) A hint to the renderer at the upper limit of voxels that are to be rendered. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderSettings14pointThresholdE">
<span id="_CPPv3N16udRenderSettings14pointThresholdE"></span><span id="_CPPv2N16udRenderSettings14pointThresholdE"></span><span id="udRenderSettings::pointThreshold__float"></span><span class="target" id="structud_render_settings_1a35a8cdfe114362acd1915575474c94b8"></span>float <code class="sig-name descname">pointThreshold</code><a class="headerlink" href="#_CPPv4N16udRenderSettings14pointThresholdE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional (GPU Renderer) A hint of the minimum size (in screen space) of a voxel that the renderer will produce. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderSettings11forwardAxisE">
<span id="_CPPv3N16udRenderSettings11forwardAxisE"></span><span id="_CPPv2N16udRenderSettings11forwardAxisE"></span><span id="udRenderSettings::forwardAxis__doubleA"></span><span class="target" id="structud_render_settings_1aaadf6818aefb5a02d7a6ffef0c25dc7e"></span>double <code class="sig-name descname">forwardAxis</code>[3]<a class="headerlink" href="#_CPPv4N16udRenderSettings11forwardAxisE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional (GPU Renderer) Override the forward axis of this render. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv416udRenderInstance">
<span id="_CPPv316udRenderInstance"></span><span id="_CPPv216udRenderInstance"></span><span id="udRenderInstance"></span><span class="target" id="structud_render_instance"></span><em class="property">struct </em><code class="sig-name descname">udRenderInstance</code><a class="headerlink" href="#_CPPv416udRenderInstance" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udRenderContext.h&gt;</em><p>Stores the instance settings of a model to be rendered </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udRenderInstance11pPointCloudE">
<span id="_CPPv3N16udRenderInstance11pPointCloudE"></span><span id="_CPPv2N16udRenderInstance11pPointCloudE"></span><span id="udRenderInstance::pPointCloud__udPointCloudP"></span><span class="target" id="structud_render_instance_1afb90fa849f27c03a401d3c2a7f67a707"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<code class="sig-name descname">pPointCloud</code><a class="headerlink" href="#_CPPv4N16udRenderInstance11pPointCloudE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This is the point cloud to display. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance6matrixE">
<span id="_CPPv3N16udRenderInstance6matrixE"></span><span id="_CPPv2N16udRenderInstance6matrixE"></span><span id="udRenderInstance::matrix__doubleA"></span><span class="target" id="structud_render_instance_1a3caedf1109db07efbc4a2bc5dcf1e7d6"></span>double <code class="sig-name descname">matrix</code>[16]<a class="headerlink" href="#_CPPv4N16udRenderInstance6matrixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The world space matrix for this point cloud instance (this does not to be the default matrix) <dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The default matrix for a model can be accessed from the associated <a class="reference internal" href="#structud_point_cloud_header"><span class="std std-ref">udPointCloudHeader</span></a> </p>
</dd>
</dl>
</p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance7pFilterE">
<span id="_CPPv3N16udRenderInstance7pFilterE"></span><span id="_CPPv2N16udRenderInstance7pFilterE"></span><span id="udRenderInstance::pFilter__udGeometryCP"></span><span class="target" id="structud_render_instance_1a3762478da68e41c62558501ca600d126"></span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<code class="sig-name descname">pFilter</code><a class="headerlink" href="#_CPPv4N16udRenderInstance7pFilterE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Filter to override for this model, this one will be used instead of the global one applied in <a class="reference internal" href="#structud_render_settings"><span class="std std-ref">udRenderSettings</span></a>. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance7modelIDE">
<span id="_CPPv3N16udRenderInstance7modelIDE"></span><span id="_CPPv2N16udRenderInstance7modelIDE"></span><span id="udRenderInstance::modelID__uint32_t"></span><span class="target" id="structud_render_instance_1af8295ee4af53351ed26af5c27f589d90"></span>uint32_t <code class="sig-name descname">modelID</code><a class="headerlink" href="#_CPPv4N16udRenderInstance7modelIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>(for GPU only) This value is considered as sceneID/objectID as well. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance12pVoxelShaderE">
<span id="_CPPv3N16udRenderInstance12pVoxelShaderE"></span><span id="_CPPv2N16udRenderInstance12pVoxelShaderE"></span><span class="target" id="structud_render_instance_1a795f913eb9da706a61ad6cc7611e4e1f"></span>uint32_t (*<code class="sig-name descname">pVoxelShader</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *pPointCloud, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv49udVoxelID" title="udVoxelID">udVoxelID</a> *pVoxelID, <em class="property">const</em> void *pVoxelUserData<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N16udRenderInstance12pVoxelShaderE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>When the renderer goes to select a colour, it calls this function instead. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance14pVoxelUserDataE">
<span id="_CPPv3N16udRenderInstance14pVoxelUserDataE"></span><span id="_CPPv2N16udRenderInstance14pVoxelUserDataE"></span><span id="udRenderInstance::pVoxelUserData__voidP"></span><span class="target" id="structud_render_instance_1a5a7723c650a09ddcb88b363473c2d3ff"></span>void *<code class="sig-name descname">pVoxelUserData</code><a class="headerlink" href="#_CPPv4N16udRenderInstance14pVoxelUserDataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If pVoxelShader is set, this parameter is passed to that function. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance7opacityE">
<span id="_CPPv3N16udRenderInstance7opacityE"></span><span id="_CPPv2N16udRenderInstance7opacityE"></span><span id="udRenderInstance::opacity__double"></span><span class="target" id="structud_render_instance_1ad2d508ec59b5e5d561114ba39978fb98"></span>double <code class="sig-name descname">opacity</code><a class="headerlink" href="#_CPPv4N16udRenderInstance7opacityE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If this is a value between 0 and 1 this model will be rendered blended with the rest of the scene. If the alpha from pVoxelShader is 0, the alpha provided will be written to the colourBuffer otherwise it will be calculated using this opacity value. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udRenderInstance10skipRenderE">
<span id="_CPPv3N16udRenderInstance10skipRenderE"></span><span id="_CPPv2N16udRenderInstance10skipRenderE"></span><span id="udRenderInstance::skipRender__uint32_t"></span><span class="target" id="structud_render_instance_1a02326c280ff84e212b6b87c418f7ecb6"></span>uint32_t <code class="sig-name descname">skipRender</code><a class="headerlink" href="#_CPPv4N16udRenderInstance10skipRenderE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If set not 0 the model will not be rendered. </p>
</dd></dl>

</div>
</dd></dl>

<p>The <strong><a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a></strong> object provides an interface to specify a viewport to render to. Once instantiated, the <strong><a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a></strong> can have its targets set, providing both a colour and depth output of the render which will utilize the matrices provided to the SetMatrix function. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv420udRenderTargetMatrix">
<span id="_CPPv320udRenderTargetMatrix"></span><span id="_CPPv220udRenderTargetMatrix"></span><span class="target" id="ud_render_target_8h_1ac4b6b2e6bebb1080b068370241d215db"></span><em class="property">enum </em><code class="sig-name descname">udRenderTargetMatrix</code><a class="headerlink" href="#_CPPv420udRenderTargetMatrix" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the various matrix types used within the render target </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv412udRTM_Camera">
<span id="_CPPv312udRTM_Camera"></span><span id="_CPPv212udRTM_Camera"></span><span class="target" id="ud_render_target_8h_1ac4b6b2e6bebb1080b068370241d215dbaac4e1e88d7d4122bafb1dde7dddc8649"></span><code class="sig-name descname">udRTM_Camera</code><a class="headerlink" href="#_CPPv412udRTM_Camera" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The local to world-space transform of the camera (View is implicitly set as the inverse) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udRTM_View">
<span id="_CPPv310udRTM_View"></span><span id="_CPPv210udRTM_View"></span><span class="target" id="ud_render_target_8h_1ac4b6b2e6bebb1080b068370241d215dba18eab3100a1a5d3bc953f9b27b783503"></span><code class="sig-name descname">udRTM_View</code><a class="headerlink" href="#_CPPv410udRTM_View" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The view-space transform for the model (does not need to be set explicitly) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udRTM_Projection">
<span id="_CPPv316udRTM_Projection"></span><span id="_CPPv216udRTM_Projection"></span><span class="target" id="ud_render_target_8h_1ac4b6b2e6bebb1080b068370241d215dbaade6e98e63223efb8ee22eb9ee3105c6"></span><code class="sig-name descname">udRTM_Projection</code><a class="headerlink" href="#_CPPv416udRTM_Projection" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The projection matrix (default is 60 degree LH) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udRTM_Viewport">
<span id="_CPPv314udRTM_Viewport"></span><span id="_CPPv214udRTM_Viewport"></span><span class="target" id="ud_render_target_8h_1ac4b6b2e6bebb1080b068370241d215dbad2dbdae8a9894fc6ef7b6d09e3e00893"></span><code class="sig-name descname">udRTM_Viewport</code><a class="headerlink" href="#_CPPv414udRTM_Viewport" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Viewport scaling matrix (default width and height of viewport) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udRTM_Count">
<span id="_CPPv311udRTM_Count"></span><span id="_CPPv211udRTM_Count"></span><span class="target" id="ud_render_target_8h_1ac4b6b2e6bebb1080b068370241d215dbab2e78c15915cb5a888af17e5a41c0492"></span><code class="sig-name descname">udRTM_Count</code><a class="headerlink" href="#_CPPv411udRTM_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of matrix types. Used internally but can be used as an iterator max when checking matrix information. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv421udRenderTarget_CreateP9udContextPP14udRenderTargetP15udRenderContext8uint32_t8uint32_t">
<span id="_CPPv321udRenderTarget_CreateP9udContextPP14udRenderTargetP15udRenderContext8uint32_t8uint32_t"></span><span id="_CPPv221udRenderTarget_CreateP9udContextPP14udRenderTargetP15udRenderContext8uint32_t8uint32_t"></span><span id="udRenderTarget_Create__udContextP.udRenderTargetPP.udRenderContextP.uint32_t.uint32_t"></span><span class="target" id="ud_render_target_8h_1a3498a62e9192336df7a2c1d4482b2b55"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> **<em>ppRenderTarget</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv415udRenderContext" title="udRenderContext">udRenderContext</a> *<em>pRenderer</em>, uint32_t <em>width</em>, uint32_t <em>height</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udRenderTarget_CreateP9udContextPP14udRenderTargetP15udRenderContext8uint32_t8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a> with a viewport using <code class="docutils literal notranslate"><span class="pre">width</span></code> and <code class="docutils literal notranslate"><span class="pre">height</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render target creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udRenderTarget_Destroy</strong> with <code class="docutils literal notranslate"><span class="pre">ppRenderTarget</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to be used to create the render target. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppRenderTarget</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a> into <code class="docutils literal notranslate"><span class="pre">ppRenderTarget</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderer</span></code>: The renderer associated with the render target. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">width</span></code>: The width of the viewport. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">height</span></code>: The height of the viewport. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udRenderTarget_DestroyPP14udRenderTarget">
<span id="_CPPv322udRenderTarget_DestroyPP14udRenderTarget"></span><span id="_CPPv222udRenderTarget_DestroyPP14udRenderTarget"></span><span id="udRenderTarget_Destroy__udRenderTargetPP"></span><span class="target" id="ud_render_target_8h_1aa7038f62fcbf3a0dad3620e18d6ddc01"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> **<em>ppRenderTarget</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udRenderTarget_DestroyPP14udRenderTarget" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the instance of <code class="docutils literal notranslate"><span class="pre">ppRenderTarget</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render target destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppRenderTarget</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppRenderTarget</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a>. This will deallocate the instance of <a class="reference internal" href="#structud_render_target"><span class="std std-ref">udRenderTarget</span></a>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udRenderTarget_SetTargetsP14udRenderTargetPv8uint32_tPv">
<span id="_CPPv325udRenderTarget_SetTargetsP14udRenderTargetPv8uint32_tPv"></span><span id="_CPPv225udRenderTarget_SetTargetsP14udRenderTargetPv8uint32_tPv"></span><span id="udRenderTarget_SetTargets__udRenderTargetP.voidP.uint32_t.voidP"></span><span class="target" id="ud_render_target_8h_1af2fa2bc17358c7190c84601ea39b8b33"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_SetTargets</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderTarget</em>, void *<em>pColorBuffer</em>, uint32_t <em>colorClearValue</em>, void *<em>pDepthBuffer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udRenderTarget_SetTargetsP14udRenderTargetPv8uint32_tPv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a memory buffers that a render target will write to.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the targets. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This internally calls udRenderTarget_SetTargetsWithPitch with both color and depth pitches set to 0. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code>: The render target to associate a target buffer with. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pColorBuffer</span></code>: The color buffer, if null the buffer will not be rendered to anymore. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">colorClearValue</span></code>: The clear value to clear the color buffer with. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pDepthBuffer</span></code>: The depth buffer, required </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv434udRenderTarget_SetTargetsWithPitchP14udRenderTargetPv8uint32_tPv8uint32_t8uint32_t">
<span id="_CPPv334udRenderTarget_SetTargetsWithPitchP14udRenderTargetPv8uint32_tPv8uint32_t8uint32_t"></span><span id="_CPPv234udRenderTarget_SetTargetsWithPitchP14udRenderTargetPv8uint32_tPv8uint32_t8uint32_t"></span><span id="udRenderTarget_SetTargetsWithPitch__udRenderTargetP.voidP.uint32_t.voidP.uint32_t.uint32_t"></span><span class="target" id="ud_render_target_8h_1a65fd182c45e81a58784a9d5cc2c6c9c2"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_SetTargetsWithPitch</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderTarget</em>, void *<em>pColorBuffer</em>, uint32_t <em>colorClearValue</em>, void *<em>pDepthBuffer</em>, uint32_t <em>colorPitchInBytes</em>, uint32_t <em>depthPitchInBytes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv434udRenderTarget_SetTargetsWithPitchP14udRenderTargetPv8uint32_tPv8uint32_t8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a memory buffers that a render target will write to (with pitch).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the targets. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code>: The render target to associate a target buffer with. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pColorBuffer</span></code>: The color buffer, if null the buffer will not be rendered to anymore. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">colorClearValue</span></code>: The clear value to clear the color buffer with. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pDepthBuffer</span></code>: The depth buffer, required </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">colorPitchInBytes</span></code>: The number of bytes that make up a row of the color buffer. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">depthPitchInBytes</span></code>: The number of bytes that make up a row of the depth buffer. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udRenderTarget_GetMatrixPK14udRenderTarget20udRenderTargetMatrixAL16E_d">
<span id="_CPPv324udRenderTarget_GetMatrixPK14udRenderTarget20udRenderTargetMatrixAL16E_d"></span><span id="_CPPv224udRenderTarget_GetMatrixPK14udRenderTarget20udRenderTargetMatrixA16_d"></span><span id="udRenderTarget_GetMatrix__udRenderTargetCP.udRenderTargetMatrix.doubleA"></span><span class="target" id="ud_render_target_8h_1af458b6078427145923b866b47376b15a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_GetMatrix</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderTarget</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv420udRenderTargetMatrix" title="udRenderTargetMatrix">udRenderTargetMatrix</a> <em>matrixType</em>, double <em>cameraMatrix</em>[16]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udRenderTarget_GetMatrixPK14udRenderTarget20udRenderTargetMatrixAL16E_d" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the matrix associated with <code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code> of type <code class="docutils literal notranslate"><span class="pre">matrixType</span></code> and fill it in <code class="docutils literal notranslate"><span class="pre">cameraMatrix</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the matrix. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code>: The render target to get the matrix from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">matrixType</span></code>: The type of matrix to get. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">cameraMatrix</span></code>: The array of 16 doubles which gets filled out with the matrix. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udRenderTarget_SetMatrixP14udRenderTarget20udRenderTargetMatrixAL16E_Kd">
<span id="_CPPv324udRenderTarget_SetMatrixP14udRenderTarget20udRenderTargetMatrixAL16E_Kd"></span><span id="_CPPv224udRenderTarget_SetMatrixP14udRenderTarget20udRenderTargetMatrixA16_Kd"></span><span id="udRenderTarget_SetMatrix__udRenderTargetP.udRenderTargetMatrix.doubleCA"></span><span class="target" id="ud_render_target_8h_1adcba4bca03db417d05bd9b5e7bd1b1e4"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_SetMatrix</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderTarget</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv420udRenderTargetMatrix" title="udRenderTargetMatrix">udRenderTargetMatrix</a> <em>matrixType</em>, <em class="property">const</em> double <em>cameraMatrix</em>[16]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udRenderTarget_SetMatrixP14udRenderTarget20udRenderTargetMatrixAL16E_Kd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the matrix associated with <code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code> of type <code class="docutils literal notranslate"><span class="pre">matrixType</span></code> and get it from <code class="docutils literal notranslate"><span class="pre">cameraMatrix</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the matrix. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code>: The render target to set the matrix to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">matrixType</span></code>: The type of matrix to set. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">cameraMatrix</span></code>: The array of 16 doubles to fill out the internal matrix with. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv440udRenderTarget_SetLogarithmicDepthPlanesP14udRenderTargetdd">
<span id="_CPPv340udRenderTarget_SetLogarithmicDepthPlanesP14udRenderTargetdd"></span><span id="_CPPv240udRenderTarget_SetLogarithmicDepthPlanesP14udRenderTargetdd"></span><span id="udRenderTarget_SetLogarithmicDepthPlanes__udRenderTargetP.double.double"></span><span class="target" id="ud_render_target_8h_1ab20b4e1a6ed08f9dcf9f0c5560302fab"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderTarget_SetLogarithmicDepthPlanes</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderTarget</em>, double <em>nearPlane</em>, double <em>farPlane</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv440udRenderTarget_SetLogarithmicDepthPlanesP14udRenderTargetdd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the logarithmic depth near and far planes that will be used for logarithmic rendering. Note: These values are only used when the ‘udRCF_LogarithmicDepth’ rendering flag is set.</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderTarget</span></code>: The render target to set the matrix to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">nearPlane</span></code>: The value that the near plane will be set to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">farPlane</span></code>: The value that the far plane will be set to. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<p>The <strong>udBlockRenderContext</strong> object provides an interface to render Euclideon Unlimited Detail models, with callbacks to enable GPU renderering. It provides the ability to render by colour, intensity or classification; additionally allowing the user to query a specific pixel for information about the pointcloud data. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv440udBlockRenderVertexData_GetFloatPositionPK23udBlockRenderVertexData8uint32_t">
<span id="_CPPv340udBlockRenderVertexData_GetFloatPositionPK23udBlockRenderVertexData8uint32_t"></span><span id="_CPPv240udBlockRenderVertexData_GetFloatPositionPK23udBlockRenderVertexData8uint32_t"></span><span id="udBlockRenderVertexData_GetFloatPosition__udBlockRenderVertexDataCP.uint32_t"></span><span class="target" id="ud_block_render_context_8h_1a61aff245143fc1e9952d9137e58c18d0"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble3" title="udMathDouble3">udMathDouble3</a> <code class="sig-name descname">udBlockRenderVertexData_GetFloatPosition</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv423udBlockRenderVertexData" title="udBlockRenderVertexData">udBlockRenderVertexData</a> *<em>pData</em>, uint32_t <em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv440udBlockRenderVertexData_GetFloatPositionPK23udBlockRenderVertexData8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Retrieves a voxel position in model space.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>The voxel position in model space </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pData</span></code>: The block vertex data to query. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">index</span></code>: The voxel index. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udBlockRenderContext_InitP25udBlockRenderGPUInterface">
<span id="_CPPv325udBlockRenderContext_InitP25udBlockRenderGPUInterface"></span><span id="_CPPv225udBlockRenderContext_InitP25udBlockRenderGPUInterface"></span><span id="udBlockRenderContext_Init__udBlockRenderGPUInterfaceP"></span><span class="target" id="ud_block_render_context_8h_1a0632f3b5d0874222d72fc3e8399979c3"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udBlockRenderContext_Init</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv425udBlockRenderGPUInterface" title="udBlockRenderGPUInterface">udBlockRenderGPUInterface</a> *<em>pGPUInterface</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udBlockRenderContext_InitP25udBlockRenderGPUInterface" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an instance of <code class="docutils literal notranslate"><span class="pre">udBlockRenderContext</span></code> for rendering.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render context creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGPUInterface</span></code>: The pointer of the user-defined callbacks interface. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udBlockRenderContext_Deinitv">
<span id="_CPPv327udBlockRenderContext_Deinitv"></span><span id="_CPPv227udBlockRenderContext_Deinitv"></span><span id="udBlockRenderContext_Deinit"></span><span class="target" id="ud_block_render_context_8h_1abc5e8600e3fd057e045df4849880dfc6"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udBlockRenderContext_Deinit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udBlockRenderContext_Deinitv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroy the instance of the renderer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render context destruction. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppRenderer</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a>. This will deallocate the instance of <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udBlockRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings">
<span id="_CPPv327udBlockRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings"></span><span id="_CPPv227udBlockRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings"></span><span id="udBlockRenderContext_Render__udRenderContextP.udRenderTargetP.udRenderInstanceP.i.udRenderSettingsP"></span><span class="target" id="ud_block_render_context_8h_1adec50c32c5e137c7e8626adb09d5a4f6"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udBlockRenderContext_Render</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udRenderContext" title="udRenderContext">udRenderContext</a> *<em>pRenderer</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udRenderTarget" title="udRenderTarget">udRenderTarget</a> *<em>pRenderView</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udRenderInstance" title="udRenderInstance">udRenderInstance</a> *<em>pModels</em>, int <em>modelCount</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udRenderSettings" title="udRenderSettings">udRenderSettings</a> *<em>pRenderOptions</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udBlockRenderContext_RenderP15udRenderContextP14udRenderTargetP16udRenderInstanceiP16udRenderSettings" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Render the models from the perspective of <code class="docutils literal notranslate"><span class="pre">pRenderView</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the render. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderer</span></code>: The renderer to render the scene. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderView</span></code>: The view to render from with the render buffers associated with it being filled out. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pModels</span></code>: The array of models to use in render. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">modelCount</span></code>: The amount of models in pModels. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderOptions</span></code>: Additional render options. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udRenderContext_GetModelIdPK18udBlockRenderModel">
<span id="_CPPv326udRenderContext_GetModelIdPK18udBlockRenderModel"></span><span id="_CPPv226udRenderContext_GetModelIdPK18udBlockRenderModel"></span><span id="udRenderContext_GetModelId__udBlockRenderModelCP"></span><span class="target" id="ud_block_render_context_8h_1a311eb02b33802162cca6406df0573331"></span>uint32_t <code class="sig-name descname">udRenderContext_GetModelId</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udBlockRenderModel" title="udBlockRenderModel">udBlockRenderModel</a> *<em>pBlockRenderModel</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udRenderContext_GetModelIdPK18udBlockRenderModel" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the unique user-defined id of the supplied model.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>The unique id of the model. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pBlockRenderModel</span></code>: The model whose id will be returned </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv430udRenderContext_GetVoxelShaderPK18udBlockRenderModel">
<span id="_CPPv330udRenderContext_GetVoxelShaderPK18udBlockRenderModel"></span><span id="_CPPv230udRenderContext_GetVoxelShaderPK18udBlockRenderModel"></span><span id="udRenderContext_GetVoxelShader__udBlockRenderModelCP"></span><span class="target" id="ud_block_render_context_8h_1ae290459227ab958076d882c63a0653d5"></span>uint32_t <code class="sig-name descname">udRenderContext_GetVoxelShader</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udBlockRenderModel" title="udBlockRenderModel">udBlockRenderModel</a> *<em>pBlockRenderModel</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv430udRenderContext_GetVoxelShaderPK18udBlockRenderModel" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the voxel shader function pointer</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>The voxel shader function of the model. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pBlockRenderModel</span></code>: The model whose voxel shader function will be returned </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udRenderContext_LockBlockPv">
<span id="_CPPv325udRenderContext_LockBlockPv"></span><span id="_CPPv225udRenderContext_LockBlockPv"></span><span id="udRenderContext_LockBlock__voidP"></span><span class="target" id="ud_block_render_context_8h_1ab2857e5b42095f2a4aa29ea5520ba4b7"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderContext_LockBlock</code><span class="sig-paren">(</span>void *<em>pBlock</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udRenderContext_LockBlockPv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Locks an Unlimited Detail block, preventing it from being freed by the streamer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value indicating the result of the lock update. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pBlock</span></code>: A pointer to an internal Unlimited Detail block. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udRenderContext_UnlockBlockPv">
<span id="_CPPv327udRenderContext_UnlockBlockPv"></span><span id="_CPPv227udRenderContext_UnlockBlockPv"></span><span id="udRenderContext_UnlockBlock__voidP"></span><span class="target" id="ud_block_render_context_8h_1a1df64a66cc58db3e4ba4ab7d00b5d690"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udRenderContext_UnlockBlock</code><span class="sig-paren">(</span>void *<em>pBlock</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udRenderContext_UnlockBlockPv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Unlocks an Unlimited Detail block, allowing the streamer to free it.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value indicating the result of the lock update. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pBlock</span></code>: A pointer to an internal Unlimited Detail block. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv421udBlockRenderDrawList">
<span id="_CPPv321udBlockRenderDrawList"></span><span id="_CPPv221udBlockRenderDrawList"></span><span id="udBlockRenderDrawList"></span><span class="target" id="structud_block_render_draw_list"></span><em class="property">struct </em><code class="sig-name descname">udBlockRenderDrawList</code><a class="headerlink" href="#_CPPv421udBlockRenderDrawList" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udBlockRenderContext.h&gt;</em><p>Passed by the block renderer to the implementation to define what parts of the block need to be rendered </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList3crcE">
<span id="_CPPv3N21udBlockRenderDrawList3crcE"></span><span id="_CPPv2N21udBlockRenderDrawList3crcE"></span><span id="udBlockRenderDrawList::crc__uint32_t"></span><span class="target" id="structud_block_render_draw_list_1af0889a7b361fd7b76ea626892f94a80c"></span>uint32_t <code class="sig-name descname">crc</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList3crcE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A crc representing inputs to the drawlist (eg listMask or geometry), allowing callers to cache if necessary. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList8listMaskE">
<span id="_CPPv3N21udBlockRenderDrawList8listMaskE"></span><span id="_CPPv2N21udBlockRenderDrawList8listMaskE"></span><span id="udBlockRenderDrawList::listMask__uint16_t"></span><span class="target" id="structud_block_render_draw_list_1a3db7e1f0fcc3cd77b6166dc408c6eae0"></span>uint16_t <code class="sig-name descname">listMask</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList8listMaskE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>When non-zero, the divisions the mask used to create the drawlist (with adjacent divisions merged), zero indicates non-merged/filtered list. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList9drawCountE">
<span id="_CPPv3N21udBlockRenderDrawList9drawCountE"></span><span id="_CPPv2N21udBlockRenderDrawList9drawCountE"></span><span id="udBlockRenderDrawList::drawCount__uint16_t"></span><span class="target" id="structud_block_render_draw_list_1a34d2d976dbabf8f88b40fca9fbe7329c"></span>uint16_t <code class="sig-name descname">drawCount</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList9drawCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of drawcalls to complete this block. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList5drawsE">
<span id="_CPPv3N21udBlockRenderDrawList5drawsE"></span><span id="_CPPv2N21udBlockRenderDrawList5drawsE"></span><span id="udBlockRenderDrawList::draws__udBlockRenderDrawList::DrawCallA"></span><span class="target" id="structud_block_render_draw_list_1a0d8ffc05e8dbadfc14c9a7c6ddc03ee2"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv421udBlockRenderDrawList" title="udBlockRenderDrawList">udBlockRenderDrawList</a>::<a class="reference internal" href="#_CPPv4N21udBlockRenderDrawList8DrawCallE" title="udBlockRenderDrawList::DrawCall">DrawCall</a> <code class="sig-name descname">draws</code>[1]<a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList5drawsE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
<dl class="class">
<dt id="_CPPv4N21udBlockRenderDrawList8DrawCallE">
<span id="_CPPv3N21udBlockRenderDrawList8DrawCallE"></span><span id="_CPPv2N21udBlockRenderDrawList8DrawCallE"></span><span id="udBlockRenderDrawList::DrawCall"></span><span class="target" id="structud_block_render_draw_list_1_1_draw_call"></span><em class="property">struct </em><code class="sig-name descname">DrawCall</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList8DrawCallE" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udBlockRenderContext.h&gt;</em><p>Stores the internal state of the draw call </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList8DrawCall5startE">
<span id="_CPPv3N21udBlockRenderDrawList8DrawCall5startE"></span><span id="_CPPv2N21udBlockRenderDrawList8DrawCall5startE"></span><span id="udBlockRenderDrawList::DrawCall::start__uint16_t"></span><span class="target" id="structud_block_render_draw_list_1_1_draw_call_1adf84ce0a557ace716a6a6a5fda8b1743"></span>uint16_t <code class="sig-name descname">start</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList8DrawCall5startE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Starting index in the vertex buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList8DrawCall5countE">
<span id="_CPPv3N21udBlockRenderDrawList8DrawCall5countE"></span><span id="_CPPv2N21udBlockRenderDrawList8DrawCall5countE"></span><span id="udBlockRenderDrawList::DrawCall::count__uint16_t"></span><span class="target" id="structud_block_render_draw_list_1_1_draw_call_1a0cefea97865720db33b71c8f261f4e4b"></span>uint16_t <code class="sig-name descname">count</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList8DrawCall5countE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of points for this call. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udBlockRenderDrawList8DrawCall4maskE">
<span id="_CPPv3N21udBlockRenderDrawList8DrawCall4maskE"></span><span id="_CPPv2N21udBlockRenderDrawList8DrawCall4maskE"></span><span id="udBlockRenderDrawList::DrawCall::mask__uint16_t"></span><span class="target" id="structud_block_render_draw_list_1_1_draw_call_1a05a7665ef69c575ee1da7a67a5531fd0"></span>uint16_t <code class="sig-name descname">mask</code><a class="headerlink" href="#_CPPv4N21udBlockRenderDrawList8DrawCall4maskE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Mask of division this call is relevant to (bitwise and with supplied divisionMask to determine draw/skip) </p>
</dd></dl>

</div>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="_CPPv423udBlockRenderVertexData">
<span id="_CPPv323udBlockRenderVertexData"></span><span id="_CPPv223udBlockRenderVertexData"></span><span id="udBlockRenderVertexData"></span><span class="target" id="structud_block_render_vertex_data"></span><em class="property">struct </em><code class="sig-name descname">udBlockRenderVertexData</code><a class="headerlink" href="#_CPPv423udBlockRenderVertexData" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udBlockRenderContext.h&gt;</em><p>Stores the vertex data needed to render a block </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData6pBlockE">
<span id="_CPPv3N23udBlockRenderVertexData6pBlockE"></span><span id="_CPPv2N23udBlockRenderVertexData6pBlockE"></span><span id="udBlockRenderVertexData::pBlock__voidP"></span><span class="target" id="structud_block_render_vertex_data_1a360dcfd9a9e9873f4a076945cb1e516c"></span>void *<code class="sig-name descname">pBlock</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData6pBlockE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pointer to internal block memory. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData12pPointBufferE">
<span id="_CPPv3N23udBlockRenderVertexData12pPointBufferE"></span><span id="_CPPv2N23udBlockRenderVertexData12pPointBufferE"></span><span id="udBlockRenderVertexData::pPointBuffer__udPointBufferU64CP"></span><span class="target" id="structud_block_render_vertex_data_1a8901e609ee6482edaa9fb7cf03dbcf8a"></span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferU64" title="udPointBufferU64">udPointBufferU64</a> *<code class="sig-name descname">pPointBuffer</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData12pPointBufferE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pointer to points data. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData20unitOctreeMultiplierE">
<span id="_CPPv3N23udBlockRenderVertexData20unitOctreeMultiplierE"></span><span id="_CPPv2N23udBlockRenderVertexData20unitOctreeMultiplierE"></span><span id="udBlockRenderVertexData::unitOctreeMultiplier__double"></span><span class="target" id="structud_block_render_vertex_data_1add8aa4def3f34c377861826288b3deb5"></span>double <code class="sig-name descname">unitOctreeMultiplier</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData20unitOctreeMultiplierE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Multiplier to take from integer octee space to 0..1 octree space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData8nodeSizeE">
<span id="_CPPv3N23udBlockRenderVertexData8nodeSizeE"></span><span id="_CPPv2N23udBlockRenderVertexData8nodeSizeE"></span><span id="udBlockRenderVertexData::nodeSize__double"></span><span class="target" id="structud_block_render_vertex_data_1aa5ed96990ce71afd26a6d62a1b7edc79"></span>double <code class="sig-name descname">nodeSize</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData8nodeSizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Generally the w component for the size of the node (1.0 == root, 0.5 = level 1, 0.25, etc) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData9childSizeE">
<span id="_CPPv3N23udBlockRenderVertexData9childSizeE"></span><span id="_CPPv2N23udBlockRenderVertexData9childSizeE"></span><span id="udBlockRenderVertexData::childSize__double"></span><span class="target" id="structud_block_render_vertex_data_1a935008581346f1f00f2dce7b778b90d8"></span>double <code class="sig-name descname">childSize</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData9childSizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>nodeSize * 0.5 Currently legacy, with intent to switch everything to nodeSize </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData12modelToBlockE">
<span id="_CPPv3N23udBlockRenderVertexData12modelToBlockE"></span><span id="_CPPv2N23udBlockRenderVertexData12modelToBlockE"></span><span id="udBlockRenderVertexData::modelToBlock__udMathDouble4x4"></span><span class="target" id="structud_block_render_vertex_data_1a199b7db77b51f4bc76c77577fd8b6246"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udMathDouble4x4" title="udMathDouble4x4">udMathDouble4x4</a> <code class="sig-name descname">modelToBlock</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData12modelToBlockE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Matrix to take a block from model space, to block space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N23udBlockRenderVertexData7distEyeE">
<span id="_CPPv3N23udBlockRenderVertexData7distEyeE"></span><span id="_CPPv2N23udBlockRenderVertexData7distEyeE"></span><span id="udBlockRenderVertexData::distEye__double"></span><span class="target" id="structud_block_render_vertex_data_1a721f103c264608e08b03a2413c352adc"></span>double <code class="sig-name descname">distEye</code><a class="headerlink" href="#_CPPv4N23udBlockRenderVertexData7distEyeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Distance of this block to the camera (in eye space) </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv418udBlockRenderModel">
<span id="_CPPv318udBlockRenderModel"></span><span id="_CPPv218udBlockRenderModel"></span><span id="udBlockRenderModel"></span><span class="target" id="structud_block_render_model"></span><em class="property">struct </em><code class="sig-name descname">udBlockRenderModel</code><a class="headerlink" href="#_CPPv418udBlockRenderModel" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udBlockRenderContext.h&gt;</em><p>Exposes data required to render a model </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel12pRenderModelE">
<span id="_CPPv3N18udBlockRenderModel12pRenderModelE"></span><span id="_CPPv2N18udBlockRenderModel12pRenderModelE"></span><span id="udBlockRenderModel::pRenderModel__udRenderModelP"></span><span class="target" id="structud_block_render_model_1acfc4ad249bfec5389fa9554f86acece2"></span><em class="property">struct</em> udRenderModel *<code class="sig-name descname">pRenderModel</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel12pRenderModelE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pointer to internal model. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel5worldE">
<span id="_CPPv3N18udBlockRenderModel5worldE"></span><span id="_CPPv2N18udBlockRenderModel5worldE"></span><span id="udBlockRenderModel::world__udMathDouble4x4"></span><span class="target" id="structud_block_render_model_1afcbb41ceb9f9b9f747aaeeaf34c9ab03"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udMathDouble4x4" title="udMathDouble4x4">udMathDouble4x4</a> <code class="sig-name descname">world</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel5worldE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>World Matrix. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel9worldViewE">
<span id="_CPPv3N18udBlockRenderModel9worldViewE"></span><span id="_CPPv2N18udBlockRenderModel9worldViewE"></span><span id="udBlockRenderModel::worldView__udMathDouble4x4"></span><span class="target" id="structud_block_render_model_1acadb4f04ec259c88af2d7dce3c022d87"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udMathDouble4x4" title="udMathDouble4x4">udMathDouble4x4</a> <code class="sig-name descname">worldView</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel9worldViewE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>World-View Matrix. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel10projectionE">
<span id="_CPPv3N18udBlockRenderModel10projectionE"></span><span id="_CPPv2N18udBlockRenderModel10projectionE"></span><span id="udBlockRenderModel::projection__udMathDouble4x4"></span><span class="target" id="structud_block_render_model_1ad6161b24af11a7eace130d31e7111e1c"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udMathDouble4x4" title="udMathDouble4x4">udMathDouble4x4</a> <code class="sig-name descname">projection</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel10projectionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Projection Matrix. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel4wvpsE">
<span id="_CPPv3N18udBlockRenderModel4wvpsE"></span><span id="_CPPv2N18udBlockRenderModel4wvpsE"></span><span id="udBlockRenderModel::wvps__udMathDouble4x4"></span><span class="target" id="structud_block_render_model_1a0d752f95c80b841e4f6b65d973f109fc"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udMathDouble4x4" title="udMathDouble4x4">udMathDouble4x4</a> <code class="sig-name descname">wvps</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel4wvpsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>World-View-Projection-Screen Matrix. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel13frustumPlanesE">
<span id="_CPPv3N18udBlockRenderModel13frustumPlanesE"></span><span id="_CPPv2N18udBlockRenderModel13frustumPlanesE"></span><span id="udBlockRenderModel::frustumPlanes__udMathDouble4A"></span><span class="target" id="structud_block_render_model_1a001a42cc752c109937d96c61e044830d"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble4" title="udMathDouble4">udMathDouble4</a> <code class="sig-name descname">frustumPlanes</code>[6]<a class="headerlink" href="#_CPPv4N18udBlockRenderModel13frustumPlanesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Cached view frustum planes. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel8eyePosMSE">
<span id="_CPPv3N18udBlockRenderModel8eyePosMSE"></span><span id="_CPPv2N18udBlockRenderModel8eyePosMSE"></span><span id="udBlockRenderModel::eyePosMS__udMathDouble3"></span><span class="target" id="structud_block_render_model_1a1f9c9acfad76d3ff89983f6a1d851fc8"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble3" title="udMathDouble3">udMathDouble3</a> <code class="sig-name descname">eyePosMS</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel8eyePosMSE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Position of the eye in model space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel13cameraForwardE">
<span id="_CPPv3N18udBlockRenderModel13cameraForwardE"></span><span id="_CPPv2N18udBlockRenderModel13cameraForwardE"></span><span id="udBlockRenderModel::cameraForward__udMathDouble3"></span><span class="target" id="structud_block_render_model_1a332061ee3279c1b8f340165ada91171d"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble3" title="udMathDouble3">udMathDouble3</a> <code class="sig-name descname">cameraForward</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel13cameraForwardE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Forward vector of the camera in model space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udBlockRenderModel16cameraFacingDiagE">
<span id="_CPPv3N18udBlockRenderModel16cameraFacingDiagE"></span><span id="_CPPv2N18udBlockRenderModel16cameraFacingDiagE"></span><span id="udBlockRenderModel::cameraFacingDiag__udMathDouble3"></span><span class="target" id="structud_block_render_model_1a1f054f4cc4b50f35b20feacaad7eef9e"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble3" title="udMathDouble3">udMathDouble3</a> <code class="sig-name descname">cameraFacingDiag</code><a class="headerlink" href="#_CPPv4N18udBlockRenderModel16cameraFacingDiagE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Vector that when transformed will be a diagonal line in screen space. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv425udBlockRenderGPUInterface">
<span id="_CPPv325udBlockRenderGPUInterface"></span><span id="_CPPv225udBlockRenderGPUInterface"></span><span id="udBlockRenderGPUInterface"></span><span class="target" id="structud_block_render_g_p_u_interface"></span><em class="property">struct </em><code class="sig-name descname">udBlockRenderGPUInterface</code><a class="headerlink" href="#_CPPv425udBlockRenderGPUInterface" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udBlockRenderContext.h&gt;</em><p>Structure that stores user-defined rendering callbacks (optional and required) </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface12pBeginRenderE">
<span id="_CPPv3N25udBlockRenderGPUInterface12pBeginRenderE"></span><span id="_CPPv2N25udBlockRenderGPUInterface12pBeginRenderE"></span><span class="target" id="structud_block_render_g_p_u_interface_1ad295f063852134450fb61a1fbdd18567"></span>void (*<code class="sig-name descname">pBeginRender</code>)<span class="sig-paren">(</span>void *pGPUContext, <em class="property">struct</em> udRenderView *pView<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface12pBeginRenderE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when rendering begins. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface10pEndRenderE">
<span id="_CPPv3N25udBlockRenderGPUInterface10pEndRenderE"></span><span id="_CPPv2N25udBlockRenderGPUInterface10pEndRenderE"></span><span class="target" id="structud_block_render_g_p_u_interface_1a42b696e3474d47cca713d7740c339424"></span>void (*<code class="sig-name descname">pEndRender</code>)<span class="sig-paren">(</span>void *pGPUContext<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface10pEndRenderE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when rendering ends. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface19pCreateVertexBufferE">
<span id="_CPPv3N25udBlockRenderGPUInterface19pCreateVertexBufferE"></span><span id="_CPPv2N25udBlockRenderGPUInterface19pCreateVertexBufferE"></span><span class="target" id="structud_block_render_g_p_u_interface_1a7db1ef97760f1684fea13c5ed67884a0"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pCreateVertexBuffer</code>)<span class="sig-paren">(</span>void *pGPUContext, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udBlockRenderModel" title="udBlockRenderModel">udBlockRenderModel</a> *pModel, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv423udBlockRenderVertexData" title="udBlockRenderVertexData">udBlockRenderVertexData</a> vertexData, void **ppVertexBuffer<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface19pCreateVertexBufferE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when vertex buffer is ready to be created. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface19pUploadVertexBufferE">
<span id="_CPPv3N25udBlockRenderGPUInterface19pUploadVertexBufferE"></span><span id="_CPPv2N25udBlockRenderGPUInterface19pUploadVertexBufferE"></span><span class="target" id="structud_block_render_g_p_u_interface_1a18948f0000fc84b787db3330ba6cef74"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pUploadVertexBuffer</code>)<span class="sig-paren">(</span>void *pGPUContext, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udBlockRenderModel" title="udBlockRenderModel">udBlockRenderModel</a> *pModel, void *pVertexBuffer, void *pVoxelShaderData<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface19pUploadVertexBufferE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when vertex buffer is ready to upload to GPU. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface19pRenderVertexBufferE">
<span id="_CPPv3N25udBlockRenderGPUInterface19pRenderVertexBufferE"></span><span id="_CPPv2N25udBlockRenderGPUInterface19pRenderVertexBufferE"></span><span class="target" id="structud_block_render_g_p_u_interface_1ad51561fbbb92fec2feecbd7ed74e2df0"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pRenderVertexBuffer</code>)<span class="sig-paren">(</span>void *pGPUContext, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udBlockRenderModel" title="udBlockRenderModel">udBlockRenderModel</a> *pModel, void *pVertexBuffer, uint16_t divisionsMask, <em class="property">struct</em> <a class="reference internal" href="#_CPPv421udBlockRenderDrawList" title="udBlockRenderDrawList">udBlockRenderDrawList</a> *pDrawList, double blockPriority, void *pVoxelShaderData<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface19pRenderVertexBufferE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when vertex buffer is to be rendered. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface20pDestroyVertexBufferE">
<span id="_CPPv3N25udBlockRenderGPUInterface20pDestroyVertexBufferE"></span><span id="_CPPv2N25udBlockRenderGPUInterface20pDestroyVertexBufferE"></span><span class="target" id="structud_block_render_g_p_u_interface_1ae921a43e1e9cf82c79d2c7c01fc93ace"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pDestroyVertexBuffer</code>)<span class="sig-paren">(</span>void *pGPUContext, void *pVertexBuffer<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface20pDestroyVertexBufferE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when vertex buffer is to be destroyed. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N25udBlockRenderGPUInterface11pGPUContextE">
<span id="_CPPv3N25udBlockRenderGPUInterface11pGPUContextE"></span><span id="_CPPv2N25udBlockRenderGPUInterface11pGPUContextE"></span><span id="udBlockRenderGPUInterface::pGPUContext__voidP"></span><span class="target" id="structud_block_render_g_p_u_interface_1a5bd7f17f8416bb72e7651d5ad7f37ca1"></span>void *<code class="sig-name descname">pGPUContext</code><a class="headerlink" href="#_CPPv4N25udBlockRenderGPUInterface11pGPUContextE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internal pointer to user-defined storage. </p>
</dd></dl>

</div>
</dd></dl>

<section id="udstreamer">
<h3>udStreamer<a class="headerlink" href="#udstreamer" title="Permalink to this headline">¶</a></h3>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv415udStreamer_Init8uint64_t">
<span id="_CPPv315udStreamer_Init8uint64_t"></span><span id="_CPPv215udStreamer_Init8uint64_t"></span><span id="udStreamer_Init__uint64_t"></span><span class="target" id="ud_streamer_8h_1a4241bfcec5dc9885a06f5d0d6a1245e0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udStreamer_Init</code><span class="sig-paren">(</span>uint64_t <em>memoryThresholdBytes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415udStreamer_Init8uint64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialises the UDS streamer</p>
<p><dl class="simple">
<dt><strong>Warning</strong></dt><dd><p>If memoryThresholdBytes is non-zero (which will use the default amount of memory) the return code will be udE_CalledMoreThanOnce if the streamer has already been started </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>If the streamer hasn’t been initialised before loading a UDS or creating a <a class="reference internal" href="#structud_render_context"><span class="std std-ref">udRenderContext</span></a> it will be initialised during those using default values </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">memoryThresholdBytes</span></code>: Sets the threshold for how much memory the streaming system should <em>attempt</em> to stay below in bytes. Set as 0 to use the default amount of memory for the current platform. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udStreamer_Deinitv">
<span id="_CPPv317udStreamer_Deinitv"></span><span id="_CPPv217udStreamer_Deinitv"></span><span id="udStreamer_Deinit"></span><span class="target" id="ud_streamer_8h_1aded7eeaa82cc79ba76ac22d1e8ff5e97"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udStreamer_Deinit</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udStreamer_Deinitv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Deinitialises the UDS streamer (reference counted). This must be called once for every call to udStreamer_Init regardless of return code of that function to decrease the reference count. </p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udStreamer_UpdateP14udStreamerInfo">
<span id="_CPPv317udStreamer_UpdateP14udStreamerInfo"></span><span id="_CPPv217udStreamer_UpdateP14udStreamerInfo"></span><span id="udStreamer_Update__udStreamerInfoP"></span><span class="target" id="ud_streamer_8h_1a99f7a3dbdacbde6f9f88f45d63990154"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udStreamer_Update</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udStreamerInfo" title="udStreamerInfo">udStreamerInfo</a> *<em>pStatus</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udStreamer_UpdateP14udStreamerInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Updates the UDS streamer manually (used in conjuction with udRCF_ManualStreamerUpdate)</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The application should call this immediately after the last render for the frame </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pStatus</span></code>: A structure to write streaming information to; Use NULL if the information isn’t required </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv414udStreamerInfo">
<span id="_CPPv314udStreamerInfo"></span><span id="_CPPv214udStreamerInfo"></span><span id="udStreamerInfo"></span><span class="target" id="structud_streamer_info"></span><em class="property">struct </em><code class="sig-name descname">udStreamerInfo</code><a class="headerlink" href="#_CPPv414udStreamerInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udStreamer.h&gt;</em><p>Stores returned information from a streamer update </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N14udStreamerInfo6activeE">
<span id="_CPPv3N14udStreamerInfo6activeE"></span><span id="_CPPv2N14udStreamerInfo6activeE"></span><span id="udStreamerInfo::active__uint32_t"></span><span class="target" id="structud_streamer_info_1af4760fceebe2129761428d7a3841f540"></span>uint32_t <code class="sig-name descname">active</code><a class="headerlink" href="#_CPPv4N14udStreamerInfo6activeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Not 0 if streamer has blocked to load, or models are awaiting destruction. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udStreamerInfo11memoryInUseE">
<span id="_CPPv3N14udStreamerInfo11memoryInUseE"></span><span id="_CPPv2N14udStreamerInfo11memoryInUseE"></span><span id="udStreamerInfo::memoryInUse__int64_t"></span><span class="target" id="structud_streamer_info_1aff8b5faed9b81f7bc00ee01a0bead41f"></span>int64_t <code class="sig-name descname">memoryInUse</code><a class="headerlink" href="#_CPPv4N14udStreamerInfo11memoryInUseE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total (approximate) memory in use by the streamer (in bytes) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udStreamerInfo12modelsActiveE">
<span id="_CPPv3N14udStreamerInfo12modelsActiveE"></span><span id="_CPPv2N14udStreamerInfo12modelsActiveE"></span><span id="udStreamerInfo::modelsActive__i"></span><span class="target" id="structud_streamer_info_1a0c4b8c354814bd0700ac3331e3e809ae"></span>int <code class="sig-name descname">modelsActive</code><a class="headerlink" href="#_CPPv4N14udStreamerInfo12modelsActiveE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of models actively requesting data. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udStreamerInfo28starvedTimeMsSinceLastUpdateE">
<span id="_CPPv3N14udStreamerInfo28starvedTimeMsSinceLastUpdateE"></span><span id="_CPPv2N14udStreamerInfo28starvedTimeMsSinceLastUpdateE"></span><span id="udStreamerInfo::starvedTimeMsSinceLastUpdate__i"></span><span class="target" id="structud_streamer_info_1a3e31d0bac79173ddd43b639b0e70f7b8"></span>int <code class="sig-name descname">starvedTimeMsSinceLastUpdate</code><a class="headerlink" href="#_CPPv4N14udStreamerInfo28starvedTimeMsSinceLastUpdateE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of milliseconds spent waiting with no work to do since the previous update (ideally should be 0) </p>
</dd></dl>

</div>
</dd></dl>

</section>
</section>
<section id="converting-existing-formats-to-uds">
<h2>Converting existing formats to UDS<a class="headerlink" href="#converting-existing-formats-to-uds" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="_CPPv416udConvertContext">
<span id="_CPPv316udConvertContext"></span><span id="_CPPv216udConvertContext"></span><span id="udConvertContext"></span><span class="target" id="structud_convert_context"></span><em class="property">struct </em><code class="sig-name descname">udConvertContext</code><a class="headerlink" href="#_CPPv416udConvertContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of the convert system </p>
</dd></dl>

<p>The <strong><a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a></strong> object provides an interface to create a Euclideon Unlimited Detail model from a number of supported pointcloud formats. Once instantiated, the <strong><a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a></strong> object can be populated with input files and various conversion settings, before initiating the conversion process. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv423udConvert_CreateContextP9udContextPP16udConvertContext">
<span id="_CPPv323udConvert_CreateContextP9udContextPP16udConvertContext"></span><span id="_CPPv223udConvert_CreateContextP9udContextPP16udConvertContext"></span><span id="udConvert_CreateContext__udContextP.udConvertContextPP"></span><span class="target" id="ud_convert_8h_1af04cdc38cb68b495ca4b34ba8a334dad"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_CreateContext</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> **<em>ppConvertContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udConvert_CreateContextP9udContextPP16udConvertContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a <a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a> to convert models to the Euclideon file format.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the convert context creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udConvert_DestroyContext</strong> with <code class="docutils literal notranslate"><span class="pre">ppConvertContext</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to be used to create the convert context. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppConvertContext</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_convert_context"><span class="std std-ref"><span class="pre">udConvertContext</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppConvertContext</span></code>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udConvert_DestroyContextPP16udConvertContext">
<span id="_CPPv324udConvert_DestroyContextPP16udConvertContext"></span><span id="_CPPv224udConvert_DestroyContextPP16udConvertContext"></span><span id="udConvert_DestroyContext__udConvertContextPP"></span><span class="target" id="ud_convert_8h_1a2373e880daef610533ee928ed1c3810f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_DestroyContext</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> **<em>ppConvertContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udConvert_DestroyContextPP16udConvertContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the instance of <code class="docutils literal notranslate"><span class="pre">ppConvertContext</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the convert context destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppConvertContext</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppConvertContext</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a>. This will deallocate the instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_convert_context"><span class="std std-ref"><span class="pre">udConvertContext</span></span></a></code>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udConvert_SetOutputFilenameP16udConvertContextPKc">
<span id="_CPPv327udConvert_SetOutputFilenameP16udConvertContextPKc"></span><span id="_CPPv227udConvert_SetOutputFilenameP16udConvertContextPKc"></span><span id="udConvert_SetOutputFilename__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1aa1793382de5b9778a13d9c187f76f712"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetOutputFilename</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pFilename</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udConvert_SetOutputFilenameP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the filename of the output UDS.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the output filename. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>If the .UDS extension isn’t set, this function will add the extension. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>If the extension is .UDG the converter will generate a UDG file </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the output filename. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilename</span></code>: The filename to set for the output. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udConvert_SetTempDirectoryP16udConvertContextPKc">
<span id="_CPPv326udConvert_SetTempDirectoryP16udConvertContextPKc"></span><span id="_CPPv226udConvert_SetTempDirectoryP16udConvertContextPKc"></span><span id="udConvert_SetTempDirectory__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1a7e57a30912ddbfcc4b1a6752d5d53f45"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetTempDirectory</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pFolder</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udConvert_SetTempDirectoryP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the temporary output directory for the conversion.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the temporary directory. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>A trailing slash is not automatically added, this is to allow for a prefix for the temporary files instead of, or as well as, folders. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the temporary directory. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFolder</span></code>: The folder path to set for the temporary directory. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udConvert_SetUseBoundsP16udConvertContextPKc">
<span id="_CPPv322udConvert_SetUseBoundsP16udConvertContextPKc"></span><span id="_CPPv222udConvert_SetUseBoundsP16udConvertContextPKc"></span><span id="udConvert_SetUseBounds__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1af0c6608cb4dc8f42de177d3115fef038"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetUseBounds</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pPointCloudBoundsPath</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udConvert_SetUseBoundsP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the bounds and point resolution for the conversion from a previously converted point cloud.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the point resolution and min ,max bounds. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the point resolution. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCloudBoundsPath</span></code>: The UDS file path to be used to set the bounds and point resolution. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udConvert_SetPointResolutionP16udConvertContext8uint32_td">
<span id="_CPPv328udConvert_SetPointResolutionP16udConvertContext8uint32_td"></span><span id="_CPPv228udConvert_SetPointResolutionP16udConvertContext8uint32_td"></span><span id="udConvert_SetPointResolution__udConvertContextP.uint32_t.double"></span><span class="target" id="ud_convert_8h_1a6776bb96b69394a72ea80efb9366232b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetPointResolution</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>override</em>, double <em>pointResolutionMeters</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udConvert_SetPointResolutionP16udConvertContext8uint32_td" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the point resolution for the conversion.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the point resolution. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the point resolution. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">override</span></code>: A boolean value (0 is false) to indicate whether to override the point resolution or use the auto-detected value. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pointResolutionMeters</span></code>: The point resolution in meters. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udConvert_IgnoreAttributeP16udConvertContextPKc">
<span id="_CPPv325udConvert_IgnoreAttributeP16udConvertContextPKc"></span><span id="_CPPv225udConvert_IgnoreAttributeP16udConvertContextPKc"></span><span id="udConvert_IgnoreAttribute__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1a525c9ac494f5a18089509ce552377ac7"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_IgnoreAttribute</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pAttributeName</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udConvert_IgnoreAttributeP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Flags an attribute to be ignored for the conversion.</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the ignored attribute. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeName</span></code>: The name of the attribute to be ignored. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udConvert_RestoreAttributeP16udConvertContextPKc">
<span id="_CPPv326udConvert_RestoreAttributeP16udConvertContextPKc"></span><span id="_CPPv226udConvert_RestoreAttributeP16udConvertContextPKc"></span><span id="udConvert_RestoreAttribute__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1aad9d9a589796b7ee9b0e7deeb2ac41cf"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_RestoreAttribute</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pAttributeName</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udConvert_RestoreAttributeP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Includes an attribute in the conversion if the attribute has previously been ignored.</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to restore attribute. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeName</span></code>: The name of the attribute to be restored. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udConvert_SetAttributePrefixP16udConvertContextPKcPKc">
<span id="_CPPv328udConvert_SetAttributePrefixP16udConvertContextPKcPKc"></span><span id="_CPPv228udConvert_SetAttributePrefixP16udConvertContextPKcPKc"></span><span id="udConvert_SetAttributePrefix__udConvertContextP.cCP.cCP"></span><span class="target" id="ud_convert_8h_1ab7f53ab4224b8cea7813fb1a741a244f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetAttributePrefix</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pAttributeName</em>, <em class="property">const</em> char *<em>pPrefix</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udConvert_SetAttributePrefixP16udConvertContextPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the prefix of the attribute, used when displaying values to users.</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The prefix has a limit of 15 characters, not including the null terminator. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the attribute prefix. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeName</span></code>: The name of the attribute to set the prefix for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPrefix</span></code>: The prefix to use for the attribute. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udConvert_SetAttributeSuffixP16udConvertContextPKcPKc">
<span id="_CPPv328udConvert_SetAttributeSuffixP16udConvertContextPKcPKc"></span><span id="_CPPv228udConvert_SetAttributeSuffixP16udConvertContextPKcPKc"></span><span id="udConvert_SetAttributeSuffix__udConvertContextP.cCP.cCP"></span><span class="target" id="ud_convert_8h_1a7136fd9c80b332c8b11941044d2fdff1"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetAttributeSuffix</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pAttributeName</em>, <em class="property">const</em> char *<em>pSuffix</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udConvert_SetAttributeSuffixP16udConvertContextPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the suffix of the attribute, used when displaying values to users.</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The suffix has a limit of 15 characters, not including the null terminator. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the attribute suffix. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeName</span></code>: The name of the attribute to set the suffix for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSuffix</span></code>: The suffix to use for the attribute. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udConvert_SetSRIDP16udConvertContext8uint32_ti">
<span id="_CPPv317udConvert_SetSRIDP16udConvertContext8uint32_ti"></span><span id="_CPPv217udConvert_SetSRIDP16udConvertContext8uint32_ti"></span><span id="udConvert_SetSRID__udConvertContextP.uint32_t.i"></span><span class="target" id="ud_convert_8h_1a3bcae4061fe7440876ef253215e0c0c5"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetSRID</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>override</em>, int <em>srid</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udConvert_SetSRIDP16udConvertContext8uint32_ti" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the SRID for the conversion.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the SRID &amp; WKT. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the SRID and WKT using SRID. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">override</span></code>: A boolean value (0 is false) to indicate whether to override the SRID or use the auto-detected value. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">srid</span></code>: The SRID value to use. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv416udConvert_SetWKTP16udConvertContextPKc">
<span id="_CPPv316udConvert_SetWKTP16udConvertContextPKc"></span><span id="_CPPv216udConvert_SetWKTP16udConvertContextPKc"></span><span id="udConvert_SetWKT__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1a47194bd2956ebc1443eaea064cce595f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetWKT</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pWKT</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416udConvert_SetWKTP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the WKT for the conversion.</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>This will also enable the override on the SRID field (will not use the auto-detected value) </p>
</dd>
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the SRID &amp; WKT. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the SRID and WKT using WKT. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pWKT</span></code>: The WKT string to use. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udConvert_SetGlobalOffsetP16udConvertContextAL3E_Kd">
<span id="_CPPv325udConvert_SetGlobalOffsetP16udConvertContextAL3E_Kd"></span><span id="_CPPv225udConvert_SetGlobalOffsetP16udConvertContextA3_Kd"></span><span id="udConvert_SetGlobalOffset__udConvertContextP.doubleCA"></span><span class="target" id="ud_convert_8h_1abbb1269f20730e1d426101c9e1835f68"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetGlobalOffset</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> double <em>globalOffset</em>[3]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udConvert_SetGlobalOffsetP16udConvertContextAL3E_Kd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function adds the supplied global offset to each point in the model.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the global offset. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This is most useful for moving the origin of a model (or set of models) to the false easting and northing of an alternative geozone. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to set the offset within. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">globalOffset</span></code>: An array of 3 Doubles representing the desired offset in X, Y and then Z. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv436udConvert_SetSkipErrorsWherePossibleP16udConvertContext8uint32_t">
<span id="_CPPv336udConvert_SetSkipErrorsWherePossibleP16udConvertContext8uint32_t"></span><span id="_CPPv236udConvert_SetSkipErrorsWherePossibleP16udConvertContext8uint32_t"></span><span id="udConvert_SetSkipErrorsWherePossible__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1a520c7416e77b82ed3583083602633ca2"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetSkipErrorsWherePossible</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>ignoreParseErrorsWherePossible</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv436udConvert_SetSkipErrorsWherePossibleP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function sets the convert context up to attempt to skip errors where it can.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the skip errors where possible option. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>In most situations this will mean that an input that is corrupt, malformed or not completely supported will be parsed as far as possible and if an error occurs it will skip the rest of this input and begin on the next. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>Some importers may be able to skip to a later section in the file and continue conversion but this is up to the specific implementation of the importer. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the skip errors where possible option. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ignoreParseErrorsWherePossible</span></code>: A boolean value (0 is false) to indicate whether to skip errors where possible. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv432udConvert_SetIncludeSourceFileIDP16udConvertContext8uint32_t">
<span id="_CPPv332udConvert_SetIncludeSourceFileIDP16udConvertContext8uint32_t"></span><span id="_CPPv232udConvert_SetIncludeSourceFileIDP16udConvertContext8uint32_t"></span><span id="udConvert_SetIncludeSourceFileID__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1ad21afdc1b0167c7a7a542841b9378a2b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetIncludeSourceFileID</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>includeSourceFileID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432udConvert_SetIncludeSourceFileIDP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function sets the convert context to include a source file ID attribute channel, corresponding to a list of ID-filename pairs written to the metadata.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the include source file ID option. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The udSourceFileID has a maximum size of 65,536, therefore any conversion performed with more than this amount of source files will have indices that overflow back to 0. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the include source file ID option. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">includeSourceFileID</span></code>: A boolean value (0 is false) to indicate whether to include the source file ID. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udConvert_SetEveryNthP16udConvertContext8uint32_t">
<span id="_CPPv321udConvert_SetEveryNthP16udConvertContext8uint32_t"></span><span id="_CPPv221udConvert_SetEveryNthP16udConvertContext8uint32_t"></span><span id="udConvert_SetEveryNth__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1afccd26d038a7300313c00fca71e9d82b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetEveryNth</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>everyNth</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udConvert_SetEveryNthP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><code class="docutils literal notranslate"><span class="pre">EveryNth</span></code> lets the importers know to only include every *_n_*th point. If this is set to 0 or 1, every point will be included.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the every Nth option. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>For many file formats this will be significantly faster to process making this valuable as a tool to test if the resolution and geolocation settings are correct before doing a full conversion. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The first (0th) point is always included regardless of this value. Example: Setting this to <code class="docutils literal notranslate"><span class="pre">50</span></code> would:<ol class="arabic simple">
<li><p>Include the first point(point 0)</p></li>
<li><p>Skip 49 points</p></li>
<li><p>Include the 50th point</p></li>
<li><p>Skip another 49 points</p></li>
<li><p>Include the 100th point n. …and so on skipping 49 points and including the 50th until all points from this input are processed. The next input would then reset the count and include the 0th, skipping 49 etc.as before. </p></li>
</ol>
</p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to set the everyNth param on </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">everyNth</span></code>: How many <em>n_th points to include. Alternatively, how many (n - 1) points to skip for every point included in the export. _See the example below for a bit more context on what this number means</em>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv432udConvert_SetPolygonVerticesOnlyP16udConvertContext8uint32_t">
<span id="_CPPv332udConvert_SetPolygonVerticesOnlyP16udConvertContext8uint32_t"></span><span id="_CPPv232udConvert_SetPolygonVerticesOnlyP16udConvertContext8uint32_t"></span><span id="udConvert_SetPolygonVerticesOnly__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1a7074d99a8796c2bfcd8b905ab024eaf6"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetPolygonVerticesOnly</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>polygonVerticesOnly</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432udConvert_SetPolygonVerticesOnlyP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function sets the convert context up to skip rasterization of the polygons, leaving only the vertices.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the polygon vertices only option. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the polygonVerticesOnly param on. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">polygonVerticesOnly</span></code>: A boolean value (0 is false) to indicate whether to skip rasterization of the polygons being converted, leaving only the vertices. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udConvert_SetRetainPrimitivesP16udConvertContext8uint32_t">
<span id="_CPPv329udConvert_SetRetainPrimitivesP16udConvertContext8uint32_t"></span><span id="_CPPv229udConvert_SetRetainPrimitivesP16udConvertContext8uint32_t"></span><span id="udConvert_SetRetainPrimitives__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1ac82355f07f1e8420fddbe062b21a1736"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetRetainPrimitives</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>retainPrimitives</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udConvert_SetRetainPrimitivesP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function sets the convert context up to retain rasterised primitives such as lines/triangles to be rendered at finer resolutions at runtime</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the retainPrimitives option. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the polygonVerticesOnly param on. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">retainPrimitives</span></code>: A boolean value (0 is false) to indicate whether to retain the primitives in the output UDS file </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udConvert_SetBakeLightingP16udConvertContext8uint32_t">
<span id="_CPPv325udConvert_SetBakeLightingP16udConvertContext8uint32_t"></span><span id="_CPPv225udConvert_SetBakeLightingP16udConvertContext8uint32_t"></span><span id="udConvert_SetBakeLighting__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1acdcf1fadf59a8a669870d5660c6da924"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetBakeLighting</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>bakeLighting</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udConvert_SetBakeLightingP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function sets the convert context up to set the udCIF_BakeLightning flag allowing the read point function to bake normals into the colour channel</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the retainPrimitives option. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the polygonVerticesOnly param on. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">bakeLighting</span></code>: A boolean value (0 is false) to indicate whether to bake the normals into the colour channel in the output UDS file </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv438udConvert_SetExportOtherEmbeddedAssetsP16udConvertContext8uint32_t">
<span id="_CPPv338udConvert_SetExportOtherEmbeddedAssetsP16udConvertContext8uint32_t"></span><span id="_CPPv238udConvert_SetExportOtherEmbeddedAssetsP16udConvertContext8uint32_t"></span><span id="udConvert_SetExportOtherEmbeddedAssets__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1a49cbd35bc5ec50acd3cbe849cb367162"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetExportOtherEmbeddedAssets</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint32_t <em>exportImages</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv438udConvert_SetExportOtherEmbeddedAssetsP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function sets the convert context up to set the udCIF_ExportImages flag allowing the open function to export images to png or jpg files</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the exportImages option. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the polygonVerticesOnly param on. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">exportImages</span></code>: A boolean value (0 is false) to indicate whether to export or not images contained in e57 files </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udConvert_SetMetadataP16udConvertContextPKcPKc">
<span id="_CPPv321udConvert_SetMetadataP16udConvertContextPKcPKc"></span><span id="_CPPv221udConvert_SetMetadataP16udConvertContextPKcPKc"></span><span id="udConvert_SetMetadata__udConvertContextP.cCP.cCP"></span><span class="target" id="ud_convert_8h_1a1c7dc492cdab79f0cf59eac581def031"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetMetadata</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, <em class="property">const</em> char *<em>pMetadataValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udConvert_SetMetadataP16udConvertContextPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This adds a metadata key to the output UDS file. There are no restrictions on the key.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the metadata key and value. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>There are a number of ‘standard’ keys that are recommended to support.<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">Author</span></code>: The name of the company that owns or captured the data</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Comment</span></code>: A miscellaneous information section</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Copyright</span></code>: The copyright information</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">License</span></code>: The general license information </p></li>
</ul>
</p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to use to set the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the key.This is parsed as a JSON address. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataValue</span></code>: The contents of the key, settings this as <code class="docutils literal notranslate"><span class="pre">NULL</span></code> will remove the key from the system (if it exists). This value is handled internal as a string (won’t be parsed as JSON). </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udConvert_AddItemP16udConvertContextPKc">
<span id="_CPPv317udConvert_AddItemP16udConvertContextPKc"></span><span id="_CPPv217udConvert_AddItemP16udConvertContextPKc"></span><span id="udConvert_AddItem__udConvertContextP.cCP"></span><span class="target" id="ud_convert_8h_1a432fe23064f36e048f79c3530e5f86f8"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_AddItem</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> char *<em>pFilename</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udConvert_AddItemP16udConvertContextPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This adds an item to be converted in the convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of adding the item. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to add the item to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilename</span></code>: The file to add to the convert context. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udConvert_RemoveItemP16udConvertContext8uint64_t">
<span id="_CPPv320udConvert_RemoveItemP16udConvertContext8uint64_t"></span><span id="_CPPv220udConvert_RemoveItemP16udConvertContext8uint64_t"></span><span id="udConvert_RemoveItem__udConvertContextP.uint64_t"></span><span class="target" id="ud_convert_8h_1ad25c48f70d18f18f781d1e11024973df"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_RemoveItem</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint64_t <em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udConvert_RemoveItemP16udConvertContext8uint64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This removes an item to be converted from the convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of removing the item. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to remove the item from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">index</span></code>: The index of the item to remove from the convert context. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv434udConvert_SetInputSourceProjectionP16udConvertContext8uint64_ti">
<span id="_CPPv334udConvert_SetInputSourceProjectionP16udConvertContext8uint64_ti"></span><span id="_CPPv234udConvert_SetInputSourceProjectionP16udConvertContext8uint64_ti"></span><span id="udConvert_SetInputSourceProjection__udConvertContextP.uint64_t.i"></span><span class="target" id="ud_convert_8h_1a4447f37074817dedd8427ae597adde42"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetInputSourceProjection</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint64_t <em>index</em>, int <em>srid</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv434udConvert_SetInputSourceProjectionP16udConvertContext8uint64_ti" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This specifies the projection of the source data.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the source projection. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to set the input source projection on. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">index</span></code>: The index of the item to set the source project on. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">srid</span></code>: The SRID to use for the specified item. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udConvert_GetInfoP16udConvertContextPPK13udConvertInfo">
<span id="_CPPv317udConvert_GetInfoP16udConvertContextPPK13udConvertInfo"></span><span id="_CPPv217udConvert_GetInfoP16udConvertContextPPK13udConvertInfo"></span><span id="udConvert_GetInfo__udConvertContextP.udConvertInfoCPP"></span><span class="target" id="ud_convert_8h_1a40126c8e8ab8651a63dacfe0a9ed1ea8"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_GetInfo</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv413udConvertInfo" title="udConvertInfo">udConvertInfo</a> **<em>ppInfo</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udConvert_GetInfoP16udConvertContextPPK13udConvertInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This provides a way to get the information of the convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the information of the convert context. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to retrieve the information from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppInfo</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_convert_info"><span class="std std-ref">udConvertInfo</span></a>. This will be managed by the convert context and does not need to be deallocated. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udConvert_GetItemInfoP16udConvertContext8uint64_tP17udConvertItemInfo">
<span id="_CPPv321udConvert_GetItemInfoP16udConvertContext8uint64_tP17udConvertItemInfo"></span><span id="_CPPv221udConvert_GetItemInfoP16udConvertContext8uint64_tP17udConvertItemInfo"></span><span id="udConvert_GetItemInfo__udConvertContextP.uint64_t.udConvertItemInfoP"></span><span class="target" id="ud_convert_8h_1a92b0a65f9e0935874b4217cb3fc09180"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_GetItemInfo</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, uint64_t <em>index</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv417udConvertItemInfo" title="udConvertItemInfo">udConvertItemInfo</a> *<em>pInfo</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udConvert_GetItemInfoP16udConvertContext8uint64_tP17udConvertItemInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This provides a way to get the information of a specific item in the convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the information of the specified item. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to retrieve the item information from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">index</span></code>: The index of the item to retrieve the information for from the convert context. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pInfo</span></code>: The pointer of the <a class="reference internal" href="#structud_convert_item_info"><span class="std std-ref">udConvertItemInfo</span></a>. The will be populated by the convert context from an internal representation. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udConvert_DoConvertP16udConvertContext">
<span id="_CPPv319udConvert_DoConvertP16udConvertContext"></span><span id="_CPPv219udConvert_DoConvertP16udConvertContext"></span><span id="udConvert_DoConvert__udConvertContextP"></span><span class="target" id="ud_convert_8h_1a029847df5497eabe1ea1dcb55dfeaef2"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_DoConvert</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udConvert_DoConvertP16udConvertContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This begins the conversion process for the provided convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of starting the conversion. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context on which to start the conversion. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv416udConvert_CancelP16udConvertContext">
<span id="_CPPv316udConvert_CancelP16udConvertContext"></span><span id="_CPPv216udConvert_CancelP16udConvertContext"></span><span id="udConvert_Cancel__udConvertContextP"></span><span class="target" id="ud_convert_8h_1a1df7294845960f760d70b62b8a25eec0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_Cancel</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416udConvert_CancelP16udConvertContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This cancels the running conversion for the provided convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of cancelling the conversion. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context on which to cancel the conversion. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv415udConvert_ResetP16udConvertContext">
<span id="_CPPv315udConvert_ResetP16udConvertContext"></span><span id="_CPPv215udConvert_ResetP16udConvertContext"></span><span id="udConvert_Reset__udConvertContextP"></span><span class="target" id="ud_convert_8h_1a83fec425c168afcb91cf280af00b6e9b"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_Reset</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415udConvert_ResetP16udConvertContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This resets the statis for the provided convert context, for example to re-run a previously completed conversion.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of resetting the status. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context on which to reset the status. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udConvert_GeneratePreviewP16udConvertContextPP12udPointCloud">
<span id="_CPPv325udConvert_GeneratePreviewP16udConvertContextPP12udPointCloud"></span><span id="_CPPv225udConvert_GeneratePreviewP16udConvertContextPP12udPointCloud"></span><span id="udConvert_GeneratePreview__udConvertContextP.udPointCloudPP"></span><span class="target" id="ud_convert_8h_1a1c7e6b9d9b676c0477c204b44f933e46"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_GeneratePreview</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> **<em>ppCloud</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udConvert_GeneratePreviewP16udConvertContextPP12udPointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This generates a preview of the provided convert context.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of genearting the preview. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointCloud_Unload</strong> with <code class="docutils literal notranslate"><span class="pre">ppCloud</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to generate the preview for. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloud</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_cloud"><span class="std std-ref">udPointCloud</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_cloud"><span class="std std-ref"><span class="pre">udPointCloud</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppCloud</span></code>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt>
<span class="target" id="ud_convert_8h_1a1c99d7ac501d6357429c0629cd7016ac"></span><code class="sig-name descname">enum udError() udConvertPostProcessCallback(struct  udConvertItemInfo  * pConvertInput, struct  udPointBufferF64  * pBuffer, void * pUserData)</code></dt>
<dd><p>Callback invoked on pointbuffers after being read in during the convert process to conditionally modify points based on buffer contents</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError to indicate the success of the postprocessing - returning anything other than udE_Success will cause the conversion to fail </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertInput</span></code>: The convert info associated with the current item being processed at the time the callback is invoked </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pBuffer</span></code>: The point buffer containing the points currently being read in prior to any processing done by convert (e.g. reprojection) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pUserData</span></code>: Pointer to a struct containing user data used by this function- this may be freed by pCleanUpUserData on completion of processing of convert inputs if necessary </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv432udConvert_SetPostProcessCallbackP16udConvertContextP28udConvertPostProcessCallbackPvPFvPvE">
<span id="_CPPv332udConvert_SetPostProcessCallbackP16udConvertContextP28udConvertPostProcessCallbackPvPFvPvE"></span><span id="_CPPv232udConvert_SetPostProcessCallbackP16udConvertContextP28udConvertPostProcessCallbackPvPFvPvE"></span><span class="target" id="ud_convert_8h_1a9424dc9e9f71e1a581d2b32c5fbd0361"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_SetPostProcessCallback</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pContext</em>, udConvertPostProcessCallback *<em>pCallback</em>, void *<em>pUserData</em>, void (*<em>pCleanUpUserData</em>)<span class="sig-paren">(</span>void *<span class="sig-paren">)</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432udConvert_SetPostProcessCallbackP16udConvertContextP28udConvertPostProcessCallbackPvPFvPvE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Postprocessing to perform on points as they are read in</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the callback </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The convert context </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCallback</span></code>: takes the convertInput, a point buffer, a pointer to user data (which must point to memory that is valid for the duration of the convert process); returns udError This can be used to modify the points and their attributes as well as modify the contents of the userData Structure </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pUserData</span></code>: a pointer to any data used by the callback </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCleanUpUserData</span></code>: a function called with pUserData as the argument once the input has finished processing</p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udConvert_AddOutputAttributeP16udConvertContextP21udAttributeDescriptor">
<span id="_CPPv328udConvert_AddOutputAttributeP16udConvertContextP21udAttributeDescriptor"></span><span id="_CPPv228udConvert_AddOutputAttributeP16udConvertContextP21udAttributeDescriptor"></span><span id="udConvert_AddOutputAttribute__udConvertContextP.udAttributeDescriptorP"></span><span class="target" id="ud_convert_8h_1a6c35ceab0436cf1fb033408c34f28a1e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_AddOutputAttribute</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv421udAttributeDescriptor" title="udAttributeDescriptor">udAttributeDescriptor</a> *<em>pAttribute</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udConvert_AddOutputAttributeP16udConvertContextP21udAttributeDescriptor" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Forces the produced UDS to include the specified attribute despite not being present in any input file. This is useful when these attributes are calculated using a postprocess callback The forced attribute may still be excluded using udConvert_IgnoreAttribute. This allows an attribute added to the conversion using this function to be added/ removed using ignore/restore attribute</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the forced attribute </p>
</dd>
<dt><strong>Return</strong></dt><dd><p>udE_CountExceeded if the number of attributes exceeds the limit in a UDS </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The convert context </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttribute</span></code>: descriptor of the attribute to be added. This is copied by the function</p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv431udConvert_RemoveOutputAttributeP16udConvertContext8uint32_t">
<span id="_CPPv331udConvert_RemoveOutputAttributeP16udConvertContext8uint32_t"></span><span id="_CPPv231udConvert_RemoveOutputAttributeP16udConvertContext8uint32_t"></span><span id="udConvert_RemoveOutputAttribute__udConvertContextP.uint32_t"></span><span class="target" id="ud_convert_8h_1af609e55aceb7bfbc071ede14aa13e155"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_RemoveOutputAttribute</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pContext</em>, uint32_t <em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431udConvert_RemoveOutputAttributeP16udConvertContext8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Removes the forced attribute at the index specified from the list</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of removing the forced attribute </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The convert context </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">index</span></code>: the index of from the array of forced attributes to remove</p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv413udConvertInfo">
<span id="_CPPv313udConvertInfo"></span><span id="_CPPv213udConvertInfo"></span><span id="udConvertInfo"></span><span class="target" id="structud_convert_info"></span><em class="property">struct </em><code class="sig-name descname">udConvertInfo</code><a class="headerlink" href="#_CPPv413udConvertInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udConvert.h&gt;</em><p>Provides a copy of a subset of the convert state </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udConvertInfo11pOutputNameE">
<span id="_CPPv3N13udConvertInfo11pOutputNameE"></span><span id="_CPPv2N13udConvertInfo11pOutputNameE"></span><span id="udConvertInfo::pOutputName__cCP"></span><span class="target" id="structud_convert_info_1a80f11b2e0a044a0f7d19d7572377be81"></span><em class="property">const</em> char *<code class="sig-name descname">pOutputName</code><a class="headerlink" href="#_CPPv4N13udConvertInfo11pOutputNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The output filename. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo16pTempFilesPrefixE">
<span id="_CPPv3N13udConvertInfo16pTempFilesPrefixE"></span><span id="_CPPv2N13udConvertInfo16pTempFilesPrefixE"></span><span id="udConvertInfo::pTempFilesPrefix__cCP"></span><span class="target" id="structud_convert_info_1a11abe13a22661f4f2c4983238bf1d9eb"></span><em class="property">const</em> char *<code class="sig-name descname">pTempFilesPrefix</code><a class="headerlink" href="#_CPPv4N13udConvertInfo16pTempFilesPrefixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The file prefix for temp files. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo9pMetadataE">
<span id="_CPPv3N13udConvertInfo9pMetadataE"></span><span id="_CPPv2N13udConvertInfo9pMetadataE"></span><span id="udConvertInfo::pMetadata__cCP"></span><span class="target" id="structud_convert_info_1a3cb8d4c917da144bd5a671ed1debf7d9"></span><em class="property">const</em> char *<code class="sig-name descname">pMetadata</code><a class="headerlink" href="#_CPPv4N13udConvertInfo9pMetadataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The metadata that will be added to this model (in JSON format) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo10attributesE">
<span id="_CPPv3N13udConvertInfo10attributesE"></span><span id="_CPPv2N13udConvertInfo10attributesE"></span><span id="udConvertInfo::attributes__udAttributeSet"></span><span class="target" id="structud_convert_info_1a4e89fde673fc73d0367b15cebd91d200"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> <code class="sig-name descname">attributes</code><a class="headerlink" href="#_CPPv4N13udConvertInfo10attributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The attributes in this model. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo23ignoredAttributesLengthE">
<span id="_CPPv3N13udConvertInfo23ignoredAttributesLengthE"></span><span id="_CPPv2N13udConvertInfo23ignoredAttributesLengthE"></span><span id="udConvertInfo::ignoredAttributesLength__int32_t"></span><span class="target" id="structud_convert_info_1a12ea32cd06c886888e832b9e7c8e9459"></span>int32_t <code class="sig-name descname">ignoredAttributesLength</code><a class="headerlink" href="#_CPPv4N13udConvertInfo23ignoredAttributesLengthE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The length of the ignored attributes list. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo19ppIgnoredAttributesE">
<span id="_CPPv3N13udConvertInfo19ppIgnoredAttributesE"></span><span id="_CPPv2N13udConvertInfo19ppIgnoredAttributesE"></span><span id="udConvertInfo::ppIgnoredAttributes__cCPP"></span><span class="target" id="structud_convert_info_1a3063a6bed200de1dad2ec25519e83212"></span><em class="property">const</em> char **<code class="sig-name descname">ppIgnoredAttributes</code><a class="headerlink" href="#_CPPv4N13udConvertInfo19ppIgnoredAttributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The list of ignored attributes. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo12globalOffsetE">
<span id="_CPPv3N13udConvertInfo12globalOffsetE"></span><span id="_CPPv2N13udConvertInfo12globalOffsetE"></span><span id="udConvertInfo::globalOffset__doubleA"></span><span class="target" id="structud_convert_info_1a07c1739d0290ad26d7231a8afbbd0e0d"></span>double <code class="sig-name descname">globalOffset</code>[3]<a class="headerlink" href="#_CPPv4N13udConvertInfo12globalOffsetE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This amount is added to every point during conversion. Useful for moving the origin of the entire scene to geolocate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo18minPointResolutionE">
<span id="_CPPv3N13udConvertInfo18minPointResolutionE"></span><span id="_CPPv2N13udConvertInfo18minPointResolutionE"></span><span id="udConvertInfo::minPointResolution__double"></span><span class="target" id="structud_convert_info_1aaf1a046df728b4e56d1074bfc0bf31ed"></span>double <code class="sig-name descname">minPointResolution</code><a class="headerlink" href="#_CPPv4N13udConvertInfo18minPointResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The native resolution of the highest resolution file. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo18maxPointResolutionE">
<span id="_CPPv3N13udConvertInfo18maxPointResolutionE"></span><span id="_CPPv2N13udConvertInfo18maxPointResolutionE"></span><span id="udConvertInfo::maxPointResolution__double"></span><span class="target" id="structud_convert_info_1ab979f4b1ebb6b6f1b38b6e39547e0ab3"></span>double <code class="sig-name descname">maxPointResolution</code><a class="headerlink" href="#_CPPv4N13udConvertInfo18maxPointResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The native resolution of the lowest resolution file. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo23skipErrorsWherePossibleE">
<span id="_CPPv3N13udConvertInfo23skipErrorsWherePossibleE"></span><span id="_CPPv2N13udConvertInfo23skipErrorsWherePossibleE"></span><span id="udConvertInfo::skipErrorsWherePossible__uint32_t"></span><span class="target" id="structud_convert_info_1a2e7e0a6356fd839692b6ccbb46d5699f"></span>uint32_t <code class="sig-name descname">skipErrorsWherePossible</code><a class="headerlink" href="#_CPPv4N13udConvertInfo23skipErrorsWherePossibleE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0 it will continue processing other files if a file is detected as corrupt or incorrect. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo19includeSourceFileIDE">
<span id="_CPPv3N13udConvertInfo19includeSourceFileIDE"></span><span id="_CPPv2N13udConvertInfo19includeSourceFileIDE"></span><span id="udConvertInfo::includeSourceFileID__uint32_t"></span><span class="target" id="structud_convert_info_1a48c19c9fc4b84a749376ebc7eb058c4d"></span>uint32_t <code class="sig-name descname">includeSourceFileID</code><a class="headerlink" href="#_CPPv4N13udConvertInfo19includeSourceFileIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0 this will embed source files to the udSourceFileID attribute channel of the output. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo8everyNthE">
<span id="_CPPv3N13udConvertInfo8everyNthE"></span><span id="_CPPv2N13udConvertInfo8everyNthE"></span><span id="udConvertInfo::everyNth__uint32_t"></span><span class="target" id="structud_convert_info_1a1dd668000a6f4104193520460ef3941c"></span>uint32_t <code class="sig-name descname">everyNth</code><a class="headerlink" href="#_CPPv4N13udConvertInfo8everyNthE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If this value is &gt;1, only every Nth point is included in the model. e.g. 4 means only every 4th point will be included, skipping 3/4 of the points. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo19polygonVerticesOnlyE">
<span id="_CPPv3N13udConvertInfo19polygonVerticesOnlyE"></span><span id="_CPPv2N13udConvertInfo19polygonVerticesOnlyE"></span><span id="udConvertInfo::polygonVerticesOnly__uint32_t"></span><span class="target" id="structud_convert_info_1a8d5c565753bd846742fd7688328184ba"></span>uint32_t <code class="sig-name descname">polygonVerticesOnly</code><a class="headerlink" href="#_CPPv4N13udConvertInfo19polygonVerticesOnlyE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0 it will skip rasterization of polygons in favour of just processing the vertices. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo16retainPrimitivesE">
<span id="_CPPv3N13udConvertInfo16retainPrimitivesE"></span><span id="_CPPv2N13udConvertInfo16retainPrimitivesE"></span><span id="udConvertInfo::retainPrimitives__uint32_t"></span><span class="target" id="structud_convert_info_1a9de032fa49e7b45ce10a20361809874d"></span>uint32_t <code class="sig-name descname">retainPrimitives</code><a class="headerlink" href="#_CPPv4N13udConvertInfo16retainPrimitivesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0 rasterised primitives such as triangles/lines/etc are retained to be rendered at finer resolution if required at runtime. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo12bakeLightingE">
<span id="_CPPv3N13udConvertInfo12bakeLightingE"></span><span id="_CPPv2N13udConvertInfo12bakeLightingE"></span><span id="udConvertInfo::bakeLighting__uint32_t"></span><span class="target" id="structud_convert_info_1aa4f027c3815a8157e7691b29b8e3efb3"></span>uint32_t <code class="sig-name descname">bakeLighting</code><a class="headerlink" href="#_CPPv4N13udConvertInfo12bakeLightingE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>if not 0 bake the normals into the colour channel in the output UDS file </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo25exportOtherEmbeddedAssetsE">
<span id="_CPPv3N13udConvertInfo25exportOtherEmbeddedAssetsE"></span><span id="_CPPv2N13udConvertInfo25exportOtherEmbeddedAssetsE"></span><span id="udConvertInfo::exportOtherEmbeddedAssets__uint32_t"></span><span class="target" id="structud_convert_info_1a5352702db96834e173144ffc3815c8aa"></span>uint32_t <code class="sig-name descname">exportOtherEmbeddedAssets</code><a class="headerlink" href="#_CPPv4N13udConvertInfo25exportOtherEmbeddedAssetsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>if not 0 export images contained in e57 files </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo18overrideResolutionE">
<span id="_CPPv3N13udConvertInfo18overrideResolutionE"></span><span id="_CPPv2N13udConvertInfo18overrideResolutionE"></span><span id="udConvertInfo::overrideResolution__uint32_t"></span><span class="target" id="structud_convert_info_1a274bdf240d817f7f33a74874731e5e1c"></span>uint32_t <code class="sig-name descname">overrideResolution</code><a class="headerlink" href="#_CPPv4N13udConvertInfo18overrideResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set to not 0 to stop the resolution from being recalculated. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo15pointResolutionE">
<span id="_CPPv3N13udConvertInfo15pointResolutionE"></span><span id="_CPPv2N13udConvertInfo15pointResolutionE"></span><span id="udConvertInfo::pointResolution__double"></span><span class="target" id="structud_convert_info_1adaa659bdb02052b5fe9a7fed6572a1bf"></span>double <code class="sig-name descname">pointResolution</code><a class="headerlink" href="#_CPPv4N13udConvertInfo15pointResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The scale to be used in the conversion (either calculated or overriden) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo12overrideSRIDE">
<span id="_CPPv3N13udConvertInfo12overrideSRIDE"></span><span id="_CPPv2N13udConvertInfo12overrideSRIDE"></span><span id="udConvertInfo::overrideSRID__uint32_t"></span><span class="target" id="structud_convert_info_1a71275b0be55ef877dd27f24585b4fd83"></span>uint32_t <code class="sig-name descname">overrideSRID</code><a class="headerlink" href="#_CPPv4N13udConvertInfo12overrideSRIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set to not 0 to prevent the SRID being recalculated. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo4sridE">
<span id="_CPPv3N13udConvertInfo4sridE"></span><span id="_CPPv2N13udConvertInfo4sridE"></span><span id="udConvertInfo::srid__i"></span><span class="target" id="structud_convert_info_1a63704035618c0fdfcbea70f0ab33106b"></span>int <code class="sig-name descname">srid</code><a class="headerlink" href="#_CPPv4N13udConvertInfo4sridE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The geospatial reference ID (either calculated or overriden) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo4pWKTE">
<span id="_CPPv3N13udConvertInfo4pWKTE"></span><span id="_CPPv2N13udConvertInfo4pWKTE"></span><span id="udConvertInfo::pWKT__cCP"></span><span class="target" id="structud_convert_info_1a716f77eadbe137efaf0d7fef9455113e"></span><em class="property">const</em> char *<code class="sig-name descname">pWKT</code><a class="headerlink" href="#_CPPv4N13udConvertInfo4pWKTE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The geospatial WKT string. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo15totalPointsReadE">
<span id="_CPPv3N13udConvertInfo15totalPointsReadE"></span><span id="_CPPv2N13udConvertInfo15totalPointsReadE"></span><span id="udConvertInfo::totalPointsRead__uint64_t"></span><span class="target" id="structud_convert_info_1a81ea858f7e3e5979ee6db8c8341c985c"></span>uint64_t <code class="sig-name descname">totalPointsRead</code><a class="headerlink" href="#_CPPv4N13udConvertInfo15totalPointsReadE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many points have been read in this model. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo10totalItemsE">
<span id="_CPPv3N13udConvertInfo10totalItemsE"></span><span id="_CPPv2N13udConvertInfo10totalItemsE"></span><span id="udConvertInfo::totalItems__uint64_t"></span><span class="target" id="structud_convert_info_1acda041ea909fd041d2cc3a177059b0e7"></span>uint64_t <code class="sig-name descname">totalItems</code><a class="headerlink" href="#_CPPv4N13udConvertInfo10totalItemsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many items are in the list. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo16currentInputItemE">
<span id="_CPPv3N13udConvertInfo16currentInputItemE"></span><span id="_CPPv2N13udConvertInfo16currentInputItemE"></span><span id="udConvertInfo::currentInputItem__uint64_t"></span><span class="target" id="structud_convert_info_1a6fb90edd8fa193bb5ccb36d2fb31aead"></span>uint64_t <code class="sig-name descname">currentInputItem</code><a class="headerlink" href="#_CPPv4N13udConvertInfo16currentInputItemE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The index of the item that is currently being read. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo14outputFileSizeE">
<span id="_CPPv3N13udConvertInfo14outputFileSizeE"></span><span id="_CPPv2N13udConvertInfo14outputFileSizeE"></span><span id="udConvertInfo::outputFileSize__uint64_t"></span><span class="target" id="structud_convert_info_1ac9554bd2604e771a9d6d7eb351a4a0d0"></span>uint64_t <code class="sig-name descname">outputFileSize</code><a class="headerlink" href="#_CPPv4N13udConvertInfo14outputFileSizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Size of the result UDS file. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo16sourcePointCountE">
<span id="_CPPv3N13udConvertInfo16sourcePointCountE"></span><span id="_CPPv2N13udConvertInfo16sourcePointCountE"></span><span id="udConvertInfo::sourcePointCount__uint64_t"></span><span class="target" id="structud_convert_info_1aa770488f3c704b01d330335d094f9610"></span>uint64_t <code class="sig-name descname">sourcePointCount</code><a class="headerlink" href="#_CPPv4N13udConvertInfo16sourcePointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of points added (may include duplicates or out of range points) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo16uniquePointCountE">
<span id="_CPPv3N13udConvertInfo16uniquePointCountE"></span><span id="_CPPv2N13udConvertInfo16uniquePointCountE"></span><span id="udConvertInfo::uniquePointCount__uint64_t"></span><span class="target" id="structud_convert_info_1aac19df50d4d25332357bb38ec014c31b"></span>uint64_t <code class="sig-name descname">uniquePointCount</code><a class="headerlink" href="#_CPPv4N13udConvertInfo16uniquePointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of unique points in the final model. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo19discardedPointCountE">
<span id="_CPPv3N13udConvertInfo19discardedPointCountE"></span><span id="_CPPv2N13udConvertInfo19discardedPointCountE"></span><span id="udConvertInfo::discardedPointCount__uint64_t"></span><span class="target" id="structud_convert_info_1ad33a5fca323707ebafaeb6c8599899e9"></span>uint64_t <code class="sig-name descname">discardedPointCount</code><a class="headerlink" href="#_CPPv4N13udConvertInfo19discardedPointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of duplicate or ignored out of range points. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo16outputPointCountE">
<span id="_CPPv3N13udConvertInfo16outputPointCountE"></span><span id="_CPPv2N13udConvertInfo16outputPointCountE"></span><span id="udConvertInfo::outputPointCount__uint64_t"></span><span class="target" id="structud_convert_info_1a96815bad10813d306aeb3a56e02c4a4c"></span>uint64_t <code class="sig-name descname">outputPointCount</code><a class="headerlink" href="#_CPPv4N13udConvertInfo16outputPointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of points written to UDS (can be used for progress) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo13peakDiskUsageE">
<span id="_CPPv3N13udConvertInfo13peakDiskUsageE"></span><span id="_CPPv2N13udConvertInfo13peakDiskUsageE"></span><span id="udConvertInfo::peakDiskUsage__uint64_t"></span><span class="target" id="structud_convert_info_1ab28a2d4942df29bc5e75707052a6b9a9"></span>uint64_t <code class="sig-name descname">peakDiskUsage</code><a class="headerlink" href="#_CPPv4N13udConvertInfo13peakDiskUsageE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Peak amount of disk space used including both temp files and the actual output file. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo17peakTempFileUsageE">
<span id="_CPPv3N13udConvertInfo17peakTempFileUsageE"></span><span id="_CPPv2N13udConvertInfo17peakTempFileUsageE"></span><span id="udConvertInfo::peakTempFileUsage__uint64_t"></span><span class="target" id="structud_convert_info_1a1565e0d882688c46b5ccc25caebc9fe6"></span>uint64_t <code class="sig-name descname">peakTempFileUsage</code><a class="headerlink" href="#_CPPv4N13udConvertInfo17peakTempFileUsageE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Peak amount of disk space that contained temp files. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udConvertInfo17peakTempFileCountE">
<span id="_CPPv3N13udConvertInfo17peakTempFileCountE"></span><span id="_CPPv2N13udConvertInfo17peakTempFileCountE"></span><span id="udConvertInfo::peakTempFileCount__uint32_t"></span><span class="target" id="structud_convert_info_1a4296e1ec84312a9674c90664788c1e55"></span>uint32_t <code class="sig-name descname">peakTempFileCount</code><a class="headerlink" href="#_CPPv4N13udConvertInfo17peakTempFileCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Peak number of temporary files written. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv417udConvertItemInfo">
<span id="_CPPv317udConvertItemInfo"></span><span id="_CPPv217udConvertItemInfo"></span><span id="udConvertItemInfo"></span><span class="target" id="structud_convert_item_info"></span><em class="property">struct </em><code class="sig-name descname">udConvertItemInfo</code><a class="headerlink" href="#_CPPv417udConvertItemInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udConvert.h&gt;</em><p>Provides a copy of a subset of a convert item state </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N17udConvertItemInfo9pFilenameE">
<span id="_CPPv3N17udConvertItemInfo9pFilenameE"></span><span id="_CPPv2N17udConvertItemInfo9pFilenameE"></span><span id="udConvertItemInfo::pFilename__cCP"></span><span class="target" id="structud_convert_item_info_1abf954a23a27f93f4cb98ad1abfcb6638"></span><em class="property">const</em> char *<code class="sig-name descname">pFilename</code><a class="headerlink" href="#_CPPv4N17udConvertItemInfo9pFilenameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Name of the input file. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udConvertItemInfo11pointsCountE">
<span id="_CPPv3N17udConvertItemInfo11pointsCountE"></span><span id="_CPPv2N17udConvertItemInfo11pointsCountE"></span><span id="udConvertItemInfo::pointsCount__int64_t"></span><span class="target" id="structud_convert_item_info_1a2b69f6a07e1f6822a8d84643c39e0280"></span>int64_t <code class="sig-name descname">pointsCount</code><a class="headerlink" href="#_CPPv4N17udConvertItemInfo11pointsCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This might be an estimate, -1 is no estimate is available. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udConvertItemInfo10pointsReadE">
<span id="_CPPv3N17udConvertItemInfo10pointsReadE"></span><span id="_CPPv2N17udConvertItemInfo10pointsReadE"></span><span id="udConvertItemInfo::pointsRead__uint64_t"></span><span class="target" id="structud_convert_item_info_1a2f7f5d5002b5d2ea86d642cb0ac74db5"></span>uint64_t <code class="sig-name descname">pointsRead</code><a class="headerlink" href="#_CPPv4N17udConvertItemInfo10pointsReadE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Once conversation begins, this will give an indication of progress. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udConvertItemInfo19estimatedResolutionE">
<span id="_CPPv3N17udConvertItemInfo19estimatedResolutionE"></span><span id="_CPPv2N17udConvertItemInfo19estimatedResolutionE"></span><span id="udConvertItemInfo::estimatedResolution__double"></span><span class="target" id="structud_convert_item_info_1a4f4f004592760ae8f3b5762ace8053a8"></span>double <code class="sig-name descname">estimatedResolution</code><a class="headerlink" href="#_CPPv4N17udConvertItemInfo19estimatedResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The estimated scale of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udConvertItemInfo4sridE">
<span id="_CPPv3N17udConvertItemInfo4sridE"></span><span id="_CPPv2N17udConvertItemInfo4sridE"></span><span id="udConvertItemInfo::srid__i"></span><span class="target" id="structud_convert_item_info_1a8ce57f02fb4cc53760ef98d97079e834"></span>int <code class="sig-name descname">srid</code><a class="headerlink" href="#_CPPv4N17udConvertItemInfo4sridE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The calculated geospatial reference ID of the item. </p>
</dd></dl>

</div>
</dd></dl>

<p><a class="reference internal" href="#structud_convert_custom_item"><span class="std std-ref">udConvertCustomItem</span></a> provides a way to convert proprietary or unsupported file formats to Unlimited Detail format </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv424udConvertCustomItemFlags">
<span id="_CPPv324udConvertCustomItemFlags"></span><span id="_CPPv224udConvertCustomItemFlags"></span><span class="target" id="ud_convert_custom_8h_1a9780981c6b60bf2f171e248ef5ac61ce"></span><em class="property">enum </em><code class="sig-name descname">udConvertCustomItemFlags</code><a class="headerlink" href="#_CPPv424udConvertCustomItemFlags" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Settings the custom converts need to be aware of that are set by the user </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv411udCCIF_None">
<span id="_CPPv311udCCIF_None"></span><span id="_CPPv211udCCIF_None"></span><span class="target" id="ud_convert_custom_8h_1a9780981c6b60bf2f171e248ef5ac61cea629f041a5d7f5808e02194fd976485a5"></span><code class="sig-name descname">udCCIF_None</code> = 0<a class="headerlink" href="#_CPPv411udCCIF_None" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>No additional flags specified. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv430udCCIF_SkipErrorsWherePossible">
<span id="_CPPv330udCCIF_SkipErrorsWherePossible"></span><span id="_CPPv230udCCIF_SkipErrorsWherePossible"></span><span class="target" id="ud_convert_custom_8h_1a9780981c6b60bf2f171e248ef5ac61ceaf9bf1bcab9e8056db7cd4772752845d1"></span><code class="sig-name descname">udCCIF_SkipErrorsWherePossible</code> = 1<a class="headerlink" href="#_CPPv430udCCIF_SkipErrorsWherePossible" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If its possible to continue parsing, that is perferable to failing. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv426udCCIF_PolygonVerticesOnly">
<span id="_CPPv326udCCIF_PolygonVerticesOnly"></span><span id="_CPPv226udCCIF_PolygonVerticesOnly"></span><span class="target" id="ud_convert_custom_8h_1a9780981c6b60bf2f171e248ef5ac61ceaeaa786876b91e05cc48152af2b7a5db5"></span><code class="sig-name descname">udCCIF_PolygonVerticesOnly</code> = 2<a class="headerlink" href="#_CPPv426udCCIF_PolygonVerticesOnly" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Do not rasterise the polygons, just use the vertices as points. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udCCIF_BakeLighting">
<span id="_CPPv319udCCIF_BakeLighting"></span><span id="_CPPv219udCCIF_BakeLighting"></span><span class="target" id="ud_convert_custom_8h_1a9780981c6b60bf2f171e248ef5ac61cea8c73886b8a7d910edd471e56b8a1368c"></span><code class="sig-name descname">udCCIF_BakeLighting</code> = 8<a class="headerlink" href="#_CPPv419udCCIF_BakeLighting" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Bake normals into color channel for polygons conversion. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udCCIF_ExportImages">
<span id="_CPPv319udCCIF_ExportImages"></span><span id="_CPPv219udCCIF_ExportImages"></span><span class="target" id="ud_convert_custom_8h_1a9780981c6b60bf2f171e248ef5ac61ceab211b8c19d265c7e171d029c37e59d78"></span><code class="sig-name descname">udCCIF_ExportImages</code> = 16<a class="headerlink" href="#_CPPv419udCCIF_ExportImages" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Export images contained in e57 files. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv421udPrimitiveVertexType">
<span id="_CPPv321udPrimitiveVertexType"></span><span id="_CPPv221udPrimitiveVertexType"></span><span class="target" id="ud_convert_custom_8h_1af59ca3dfdffa0cdb3140333b0ab090ea"></span><em class="property">enum </em><code class="sig-name descname">udPrimitiveVertexType</code><a class="headerlink" href="#_CPPv421udPrimitiveVertexType" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Indicates the geometry type of a vertex passed to pReadPrimitives </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv410udPVT_Null">
<span id="_CPPv310udPVT_Null"></span><span id="_CPPv210udPVT_Null"></span><span class="target" id="ud_convert_custom_8h_1af59ca3dfdffa0cdb3140333b0ab090eaa1df6746e3e2baaad86b567331c9542b2"></span><code class="sig-name descname">udPVT_Null</code> = 0<a class="headerlink" href="#_CPPv410udPVT_Null" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The vertex does not form part of a primitive. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udPVT_Line">
<span id="_CPPv310udPVT_Line"></span><span id="_CPPv210udPVT_Line"></span><span class="target" id="ud_convert_custom_8h_1af59ca3dfdffa0cdb3140333b0ab090eaadde3f68d9ecabe17ac9fd5335bd2e2de"></span><code class="sig-name descname">udPVT_Line</code> = 0x20000000<a class="headerlink" href="#_CPPv410udPVT_Line" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The vertex is the start point of a line, the next vertex will represent the endpoint. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udPVT_Triangle">
<span id="_CPPv314udPVT_Triangle"></span><span id="_CPPv214udPVT_Triangle"></span><span class="target" id="ud_convert_custom_8h_1af59ca3dfdffa0cdb3140333b0ab090eaa446e88bb1193956377569d9e0f0cbe49"></span><code class="sig-name descname">udPVT_Triangle</code> = 0x30000000<a class="headerlink" href="#_CPPv414udPVT_Triangle" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The next 3 vertices in the buffer represent a triangle. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv423udPrimitiveTextureFlags">
<span id="_CPPv323udPrimitiveTextureFlags"></span><span id="_CPPv223udPrimitiveTextureFlags"></span><span class="target" id="ud_convert_custom_8h_1aac4b830531eed45d1fb9d545e8736ff4"></span><em class="property">enum </em><code class="sig-name descname">udPrimitiveTextureFlags</code><a class="headerlink" href="#_CPPv423udPrimitiveTextureFlags" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Indicates the geometry type of a vertex passed to pReadPrimitives </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv410udPMF_None">
<span id="_CPPv310udPMF_None"></span><span id="_CPPv210udPMF_None"></span><span class="target" id="ud_convert_custom_8h_1aac4b830531eed45d1fb9d545e8736ff4ac92d02e5d3bcd2f42be314f7b3f1d93b"></span><code class="sig-name descname">udPMF_None</code> = 0<a class="headerlink" href="#_CPPv410udPMF_None" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Default material options. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udPMF_Filter">
<span id="_CPPv312udPMF_Filter"></span><span id="_CPPv212udPMF_Filter"></span><span class="target" id="ud_convert_custom_8h_1aac4b830531eed45d1fb9d545e8736ff4a44be2ce170286776860895a5aa8d7133"></span><code class="sig-name descname">udPMF_Filter</code> = 1 &lt;&lt; 0<a class="headerlink" href="#_CPPv412udPMF_Filter" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Apply bilinear filtering to the texture. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udPMF_Clamp">
<span id="_CPPv311udPMF_Clamp"></span><span id="_CPPv211udPMF_Clamp"></span><span class="target" id="ud_convert_custom_8h_1aac4b830531eed45d1fb9d545e8736ff4af9e88a1b8a2e75f1337b100c5dc3e7e3"></span><code class="sig-name descname">udPMF_Clamp</code> = 1 &lt;&lt; 1<a class="headerlink" href="#_CPPv411udPMF_Clamp" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Apply clamping to the texture. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv423udConvert_AddCustomItemP16udConvertContextP19udConvertCustomItem">
<span id="_CPPv323udConvert_AddCustomItemP16udConvertContextP19udConvertCustomItem"></span><span id="_CPPv223udConvert_AddCustomItemP16udConvertContextP19udConvertCustomItem"></span><span id="udConvert_AddCustomItem__udConvertContextP.udConvertCustomItemP"></span><span class="target" id="ud_convert_custom_8h_1affbd471715bcd6f2a5008426c73230cc"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_AddCustomItem</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *<em>pCustomItem</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udConvert_AddCustomItemP16udConvertContextP19udConvertCustomItem" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Adds a prefilled <a class="reference internal" href="#structud_convert_custom_item"><span class="std std-ref">udConvertCustomItem</span></a> to a <a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a></p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of adding the item </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to add the item to </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCustomItem</span></code>: The custom convert item to add </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udConvert_AddCustomItemFormatP16udConvertContextPFiPKcEPF7udErrorP16udConvertContextPKcP19udConvertCustomItemE">
<span id="_CPPv329udConvert_AddCustomItemFormatP16udConvertContextPFiPKcEPF7udErrorP16udConvertContextPKcP19udConvertCustomItemE"></span><span id="_CPPv229udConvert_AddCustomItemFormatP16udConvertContextPFiPKcEPF7udErrorP16udConvertContextPKcP19udConvertCustomItemE"></span><span class="target" id="ud_convert_custom_8h_1a7e68c3fdc29ba6d5fa0dc32297c7f97f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_AddCustomItemFormat</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, int (*<em>pExtensionCheck</em>)<span class="sig-paren">(</span><em class="property">const</em> char *pFilename<span class="sig-paren">)</span>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<em>pTryAddItem</em>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *pConvertContext, <em class="property">const</em> char *pFilename, <em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *pCustomItem<span class="sig-paren">)</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udConvert_AddCustomItemFormatP16udConvertContextPFiPKcEPF7udErrorP16udConvertContextPKcP19udConvertCustomItemE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Registers a format in the <a class="reference internal" href="#structud_convert_context"><span class="std std-ref">udConvertContext</span></a> to allow users to just call udConvert_AddItem</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of registering the format </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>pTryAddItem needs to handle being called if a file doesn’t match any of the extensions </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to register the format with </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pExtensionCheck</span></code>: The callback used to determine if the format should be used, returns 1 when a match, 0 otherwise </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pTryAddItem</span></code>: The callback used when calling udConvert_AddItem needs to populate the pCustomItem parameter, returns udE_Success on success </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv432udConvert_GetPrimitiveMaterialIDP19udConvertCustomItemP8uint32_tPKc23udPrimitiveTextureFlags">
<span id="_CPPv332udConvert_GetPrimitiveMaterialIDP19udConvertCustomItemP8uint32_tPKc23udPrimitiveTextureFlags"></span><span id="_CPPv232udConvert_GetPrimitiveMaterialIDP19udConvertCustomItemP8uint32_tPKc23udPrimitiveTextureFlags"></span><span id="udConvert_GetPrimitiveMaterialID__udConvertCustomItemP.uint32_tP.cCP.udPrimitiveTextureFlags"></span><span class="target" id="ud_convert_custom_8h_1a2b2f4b340d455ee1b10805ea8febdafb"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_GetPrimitiveMaterialID</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *<em>pConvertItem</em>, uint32_t *<em>pMaterialID</em>, <em class="property">const</em> char *<em>pTexturePath</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv423udPrimitiveTextureFlags" title="udPrimitiveTextureFlags">udPrimitiveTextureFlags</a> <em>textureFlags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432udConvert_GetPrimitiveMaterialIDP19udConvertCustomItemP8uint32_tPKc23udPrimitiveTextureFlags" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the id of a material suitable for use in a primitive</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the texture ID </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertItem</span></code>: The convert item to get the material ID from </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMaterialID</span></code>: A pointer to the ID to be populated. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pTexturePath</span></code>: THe path to the texture to be used in the material </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">textureFlags</span></code>: flags indicating how the texture is processed </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv436udConvert_EstimatePointsVertexBufferP16udPointBufferF64dP7int64_t">
<span id="_CPPv336udConvert_EstimatePointsVertexBufferP16udPointBufferF64dP7int64_t"></span><span id="_CPPv236udConvert_EstimatePointsVertexBufferP16udPointBufferF64dP7int64_t"></span><span id="udConvert_EstimatePointsVertexBuffer__udPointBufferF64P.double.int64_tP"></span><span class="target" id="ud_convert_custom_8h_1aacf6c43039ed0492c9edf46b344c33f6"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udConvert_EstimatePointsVertexBuffer</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferF64" title="udPointBufferF64">udPointBufferF64</a> *<em>pBuffer</em>, double <em>gridResolution</em>, int64_t *<em>pPointCount</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv436udConvert_EstimatePointsVertexBufferP16udPointBufferF64dP7int64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Estimates the number of points generated by a vertex buffer when passed to a udPrimitive convert.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of estimating the number of points generated by the vertex buffer </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pBuffer</span></code>: The buffer of vertices as passed to pReadPrimitives, each vertex must have at minimum a udPrimitiveID indicating the type of primitive (udPVT_Line or udPVT_Triangle) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">gridResolution</span></code>: The resolution that the conversion takes place at </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCount</span></code>: a pointer to which the resultant estimate will be written </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv419udConvertCustomItem">
<span id="_CPPv319udConvertCustomItem"></span><span id="_CPPv219udConvertCustomItem"></span><span id="udConvertCustomItem"></span><span class="target" id="structud_convert_custom_item"></span><em class="property">struct </em><code class="sig-name descname">udConvertCustomItem</code><a class="headerlink" href="#_CPPv419udConvertCustomItem" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udConvertCustom.h&gt;</em><p>Allows for conversion of custom data formats to UDS </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem5pOpenE">
<span id="_CPPv3N19udConvertCustomItem5pOpenE"></span><span id="_CPPv2N19udConvertCustomItem5pOpenE"></span><span class="target" id="structud_convert_custom_item_1a0acca0da7649bfec098bf10e7adb2c1a"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pOpen</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *pConvertInput, uint32_t everyNth, double pointResolution, <em class="property">enum</em> <a class="reference internal" href="#_CPPv424udConvertCustomItemFlags" title="udConvertCustomItemFlags">udConvertCustomItemFlags</a> flags<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N19udConvertCustomItem5pOpenE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Open the file and provide information on the file (bounds, point count, etc.) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem16pReadPointsFloatE">
<span id="_CPPv3N19udConvertCustomItem16pReadPointsFloatE"></span><span id="_CPPv2N19udConvertCustomItem16pReadPointsFloatE"></span><span class="target" id="structud_convert_custom_item_1a6666f493e08ef962e098779c21fc41bf"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pReadPointsFloat</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *pConvertInput, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferF64" title="udPointBufferF64">udPointBufferF64</a> *pBuffer<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N19udConvertCustomItem16pReadPointsFloatE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Provide position and attribute data to convert to UDS. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem15pReadPrimitivesE">
<span id="_CPPv3N19udConvertCustomItem15pReadPrimitivesE"></span><span id="_CPPv2N19udConvertCustomItem15pReadPrimitivesE"></span><span class="target" id="structud_convert_custom_item_1a5b57e69dc11e5d17d22606228e6756f1"></span><a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> (*<code class="sig-name descname">pReadPrimitives</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *pConvertInput, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferF64" title="udPointBufferF64">udPointBufferF64</a> *pBuffer<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N19udConvertCustomItem15pReadPrimitivesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Provide vertex data of primitives to convert to UDS. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem8pDestroyE">
<span id="_CPPv3N19udConvertCustomItem8pDestroyE"></span><span id="_CPPv2N19udConvertCustomItem8pDestroyE"></span><span class="target" id="structud_convert_custom_item_1abcfc9b59b9c4cbc4d444010b9c950173"></span>void (*<code class="sig-name descname">pDestroy</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *pConvertInput<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N19udConvertCustomItem8pDestroyE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Cleanup all memory related to this custom convert item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem6pCloseE">
<span id="_CPPv3N19udConvertCustomItem6pCloseE"></span><span id="_CPPv2N19udConvertCustomItem6pCloseE"></span><span class="target" id="structud_convert_custom_item_1a360353183d647f946fed396e5ad6957e"></span>void (*<code class="sig-name descname">pClose</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udConvertCustomItem" title="udConvertCustomItem">udConvertCustomItem</a> *pConvertInput<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N19udConvertCustomItem6pCloseE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function will be called on completion of reading the file. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem5pDataE">
<span id="_CPPv3N19udConvertCustomItem5pDataE"></span><span id="_CPPv2N19udConvertCustomItem5pDataE"></span><span id="udConvertCustomItem::pData__voidP"></span><span class="target" id="structud_convert_custom_item_1af948c6cc15cc77704b0534387aafc518"></span>void *<code class="sig-name descname">pData</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem5pDataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Private user data relevant to the specific geomtype, must be freed by the pClose function. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem5pNameE">
<span id="_CPPv3N19udConvertCustomItem5pNameE"></span><span id="_CPPv2N19udConvertCustomItem5pNameE"></span><span id="udConvertCustomItem::pName__cCP"></span><span class="target" id="structud_convert_custom_item_1a46887783bed434d69459dff3b0ba6ff7"></span><em class="property">const</em> char *<code class="sig-name descname">pName</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem5pNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Filename or other identifier. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem8boundMinE">
<span id="_CPPv3N19udConvertCustomItem8boundMinE"></span><span id="_CPPv2N19udConvertCustomItem8boundMinE"></span><span id="udConvertCustomItem::boundMin__doubleA"></span><span class="target" id="structud_convert_custom_item_1a588f70259f7d57a2194c89dcf0b7baa1"></span>double <code class="sig-name descname">boundMin</code>[3]<a class="headerlink" href="#_CPPv4N19udConvertCustomItem8boundMinE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional (see boundsKnown) source space minimum values. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem8boundMaxE">
<span id="_CPPv3N19udConvertCustomItem8boundMaxE"></span><span id="_CPPv2N19udConvertCustomItem8boundMaxE"></span><span id="udConvertCustomItem::boundMax__doubleA"></span><span class="target" id="structud_convert_custom_item_1af376e42296d19482cdbac9a6f12d6899"></span>double <code class="sig-name descname">boundMax</code>[3]<a class="headerlink" href="#_CPPv4N19udConvertCustomItem8boundMaxE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional (see boundsKnown) source space maximum values. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem16sourceResolutionE">
<span id="_CPPv3N19udConvertCustomItem16sourceResolutionE"></span><span id="_CPPv2N19udConvertCustomItem16sourceResolutionE"></span><span id="udConvertCustomItem::sourceResolution__double"></span><span class="target" id="structud_convert_custom_item_1ab65b82245d121b8a59352d65645117b9"></span>double <code class="sig-name descname">sourceResolution</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem16sourceResolutionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Source resolution (eg 0.01 if points are 1cm apart). 0 indicates unknown. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem10pointCountE">
<span id="_CPPv3N19udConvertCustomItem10pointCountE"></span><span id="_CPPv2N19udConvertCustomItem10pointCountE"></span><span id="udConvertCustomItem::pointCount__int64_t"></span><span class="target" id="structud_convert_custom_item_1ae99e088301770df9051cfe3a56f7de56"></span>int64_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem10pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of points coming, -1 if unknown. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem4sridE">
<span id="_CPPv3N19udConvertCustomItem4sridE"></span><span id="_CPPv2N19udConvertCustomItem4sridE"></span><span id="udConvertCustomItem::srid__int32_t"></span><span class="target" id="structud_convert_custom_item_1ae08386614f55a46c98220091ff03cdaa"></span>int32_t <code class="sig-name descname">srid</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem4sridE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If non-zero, this input is considered to be within the given srid code (useful mainly as a default value for other files in the conversion) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem10attributesE">
<span id="_CPPv3N19udConvertCustomItem10attributesE"></span><span id="_CPPv2N19udConvertCustomItem10attributesE"></span><span id="udConvertCustomItem::attributes__udAttributeSet"></span><span class="target" id="structud_convert_custom_item_1a5cf72bc9852fba26d9712794be7a61b3"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> <code class="sig-name descname">attributes</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem10attributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Content of the input; this might not match the output. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem11boundsKnownE">
<span id="_CPPv3N19udConvertCustomItem11boundsKnownE"></span><span id="_CPPv2N19udConvertCustomItem11boundsKnownE"></span><span id="udConvertCustomItem::boundsKnown__uint32_t"></span><span class="target" id="structud_convert_custom_item_1a5ef715de387d9d1be28a313573bfe558"></span>uint32_t <code class="sig-name descname">boundsKnown</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem11boundsKnownE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0, boundMin and boundMax are valid, if 0 they will be calculated later. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem20pointCountIsEstimateE">
<span id="_CPPv3N19udConvertCustomItem20pointCountIsEstimateE"></span><span id="_CPPv2N19udConvertCustomItem20pointCountIsEstimateE"></span><span id="udConvertCustomItem::pointCountIsEstimate__uint32_t"></span><span class="target" id="structud_convert_custom_item_1a9a8fa0580773f76b6b1a661fd12fe665"></span>uint32_t <code class="sig-name descname">pointCountIsEstimate</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem20pointCountIsEstimateE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0, the point count is an estimate and may be different. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udConvertCustomItem9pReservedE">
<span id="_CPPv3N19udConvertCustomItem9pReservedE"></span><span id="_CPPv2N19udConvertCustomItem9pReservedE"></span><span id="udConvertCustomItem::pReserved__voidP"></span><span class="target" id="structud_convert_custom_item_1a5cfaf02bd56df40b09baf25ac26f5b23"></span>void *<code class="sig-name descname">pReserved</code><a class="headerlink" href="#_CPPv4N19udConvertCustomItem9pReservedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Contains information used in primitive convert. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv419udTriangleVoxelizer">
<span id="_CPPv319udTriangleVoxelizer"></span><span id="_CPPv219udTriangleVoxelizer"></span><span id="udTriangleVoxelizer"></span><span class="target" id="structud_triangle_voxelizer"></span><em class="property">struct </em><code class="sig-name descname">udTriangleVoxelizer</code><a class="headerlink" href="#_CPPv419udTriangleVoxelizer" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of the triangle voxelizer system </p>
</dd></dl>

<p>The <strong><a class="reference internal" href="#structud_triangle_voxelizer"><span class="std std-ref">udTriangleVoxelizer</span></a></strong> object provides an interface to convert triangles to voxels to be added to a convert job. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv426udTriangleVoxelizer_CreatePP19udTriangleVoxelizerd">
<span id="_CPPv326udTriangleVoxelizer_CreatePP19udTriangleVoxelizerd"></span><span id="_CPPv226udTriangleVoxelizer_CreatePP19udTriangleVoxelizerd"></span><span id="udTriangleVoxelizer_Create__udTriangleVoxelizerPP.double"></span><span class="target" id="ud_triangle_voxelizer_8h_1aa0113d7d80f53c32658e8514108b67d2"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udTriangleVoxelizer_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udTriangleVoxelizer" title="udTriangleVoxelizer">udTriangleVoxelizer</a> **<em>ppVoxelizer</em>, double <em>gridRes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udTriangleVoxelizer_CreatePP19udTriangleVoxelizerd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Creates a <a class="reference internal" href="#structud_triangle_voxelizer"><span class="std std-ref">udTriangleVoxelizer</span></a> object at the specified grid resolution.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the triangle voxelizer creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udTriangleVoxelizer_Destroy</strong> with <code class="docutils literal notranslate"><span class="pre">ppTriRaster</span></code> to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppVoxelizer</span></code>: A pointer to a location in which the new <a class="reference internal" href="#structud_triangle_voxelizer"><span class="std std-ref">udTriangleVoxelizer</span></a> object is stored. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">gridRes</span></code>: The intended grid resolution of the convert job. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udTriangleVoxelizer_DestroyPP19udTriangleVoxelizer">
<span id="_CPPv327udTriangleVoxelizer_DestroyPP19udTriangleVoxelizer"></span><span id="_CPPv227udTriangleVoxelizer_DestroyPP19udTriangleVoxelizer"></span><span id="udTriangleVoxelizer_Destroy__udTriangleVoxelizerPP"></span><span class="target" id="ud_triangle_voxelizer_8h_1aca7c01c578f021f99a52831b4c865635"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udTriangleVoxelizer_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udTriangleVoxelizer" title="udTriangleVoxelizer">udTriangleVoxelizer</a> **<em>ppVoxelizer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udTriangleVoxelizer_DestroyPP19udTriangleVoxelizer" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys a <a class="reference internal" href="#structud_triangle_voxelizer"><span class="std std-ref">udTriangleVoxelizer</span></a> object that was created using <strong>udTriangleVoxelizer_Create</strong>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the object destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppTriRaster</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppVoxelizer</span></code>: A pointer to a <a class="reference internal" href="#structud_triangle_voxelizer"><span class="std std-ref">udTriangleVoxelizer</span></a> object which is to be destroyed. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv431udTriangleVoxelizer_SetTriangleP19udTriangleVoxelizerPKdPKdPKd">
<span id="_CPPv331udTriangleVoxelizer_SetTriangleP19udTriangleVoxelizerPKdPKdPKd"></span><span id="_CPPv231udTriangleVoxelizer_SetTriangleP19udTriangleVoxelizerPKdPKdPKd"></span><span id="udTriangleVoxelizer_SetTriangle__udTriangleVoxelizerP.doubleCP.doubleCP.doubleCP"></span><span class="target" id="ud_triangle_voxelizer_8h_1a6fd0cefb2eb1f25851f2107cd9b46a91"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udTriangleVoxelizer_SetTriangle</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udTriangleVoxelizer" title="udTriangleVoxelizer">udTriangleVoxelizer</a> *<em>pVoxelizer</em>, <em class="property">const</em> double *<em>pV0</em>, <em class="property">const</em> double *<em>pV1</em>, <em class="property">const</em> double *<em>pV2</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431udTriangleVoxelizer_SetTriangleP19udTriangleVoxelizerPKdPKdPKd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the vertices of the triangle, this primes a new triangle.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the triangle. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>This will overwrite any existing unread points from a previous triangle </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>Triangle will be treated as a line if v1 == v2 (v2 is degenerate) </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pVoxelizer</span></code>: The voxelizer to be used to set the triangle. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pV0</span></code>: The first vertex in the triangle. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pV1</span></code>: The second vertex in the triangle. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pV2</span></code>: The third vertex in the triangle. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udTriangleVoxelizer_GetPointsP19udTriangleVoxelizerPPdPPdP8uint32_t8uint32_t">
<span id="_CPPv329udTriangleVoxelizer_GetPointsP19udTriangleVoxelizerPPdPPdP8uint32_t8uint32_t"></span><span id="_CPPv229udTriangleVoxelizer_GetPointsP19udTriangleVoxelizerPPdPPdP8uint32_t8uint32_t"></span><span id="udTriangleVoxelizer_GetPoints__udTriangleVoxelizerP.doublePP.doublePP.uint32_tP.uint32_t"></span><span class="target" id="ud_triangle_voxelizer_8h_1af0e5875157f7132936efba0be30c2688"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udTriangleVoxelizer_GetPoints</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udTriangleVoxelizer" title="udTriangleVoxelizer">udTriangleVoxelizer</a> *<em>pVoxelizer</em>, double **<em>ppPositions</em>, double **<em>ppBarycentricWeights</em>, uint32_t *<em>pPointCount</em>, uint32_t <em>maxPoints</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udTriangleVoxelizer_GetPointsP19udTriangleVoxelizerPPdPPdP8uint32_t8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the voxelized points from the current triangle.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the points. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>Returns a portion of voxelized points from current triangle, call repeatedly until *pPointCount is zero meaning the triangle is fully voxelized. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The <a class="reference internal" href="#structud_triangle_voxelizer"><span class="std std-ref">udTriangleVoxelizer</span></a> object owns the arrays returned via ppPositions and ppBarycentricWeights. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pVoxelizer</span></code>: The voxelizer to be used to get the points. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppPositions</span></code>: A pointer to be populated with an array of positions. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppBarycentricWeights</span></code>: A pointer to be populated with an array of Barycentric weights. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCount</span></code>: A pointer to be populated with the number of poisitions and weights. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">maxPoints</span></code>: The maximum number of points to be returned. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
</section>
<section id="using-accessing-point-data">
<h2>Using &amp; Accessing Point Data<a class="headerlink" href="#using-accessing-point-data" title="Permalink to this headline">¶</a></h2>
<section id="udattributes">
<h3>udAttributes<a class="headerlink" href="#udattributes" title="Permalink to this headline">¶</a></h3>
<p>udAttributes.h provides an interface to attribute streams of Unlimited Detail models. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv414udStdAttribute">
<span id="_CPPv314udStdAttribute"></span><span id="_CPPv214udStdAttribute"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aac"></span><em class="property">enum </em><code class="sig-name descname">udStdAttribute</code><a class="headerlink" href="#_CPPv414udStdAttribute" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A list of standard UDS attributes </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv412udSA_GPSTime">
<span id="_CPPv312udSA_GPSTime"></span><span id="_CPPv212udSA_GPSTime"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca1bda72436834052f1d5e59b428e0a3ac"></span><code class="sig-name descname">udSA_GPSTime</code><a class="headerlink" href="#_CPPv412udSA_GPSTime" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_float64 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udSA_PrimitiveID">
<span id="_CPPv316udSA_PrimitiveID"></span><span id="_CPPv216udSA_PrimitiveID"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacaa97f697e9e5f571222285354725c4bcb"></span><code class="sig-name descname">udSA_PrimitiveID</code><a class="headerlink" href="#_CPPv416udSA_PrimitiveID" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint32 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udSA_PrimitiveU">
<span id="_CPPv315udSA_PrimitiveU"></span><span id="_CPPv215udSA_PrimitiveU"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacaf8b6264fb61822f6babb71c3df8ffa9b"></span><code class="sig-name descname">udSA_PrimitiveU</code><a class="headerlink" href="#_CPPv415udSA_PrimitiveU" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_float32 Texture U coordinate passed to custom conversions involving primitives </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udSA_PrimitiveV">
<span id="_CPPv315udSA_PrimitiveV"></span><span id="_CPPv215udSA_PrimitiveV"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacab5e057f4b4f68b70b37f88f13aa5b546"></span><code class="sig-name descname">udSA_PrimitiveV</code><a class="headerlink" href="#_CPPv415udSA_PrimitiveV" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_float32 Texture V coordinate passed to custom conversions involving primitives </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udSA_PrimitiveMaterialID">
<span id="_CPPv324udSA_PrimitiveMaterialID"></span><span id="_CPPv224udSA_PrimitiveMaterialID"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacacad7adb6ba0b84ba74f871cf46af5d7b"></span><code class="sig-name descname">udSA_PrimitiveMaterialID</code><a class="headerlink" href="#_CPPv424udSA_PrimitiveMaterialID" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint32 ID of texture as returned by udConvert_GetPrimitiveMaterialID, passed to custom conversions involving primitives </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udSA_ARGB">
<span id="_CPPv39udSA_ARGB"></span><span id="_CPPv29udSA_ARGB"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca1e0267dc236b7a98444f352d6a4887d2"></span><code class="sig-name descname">udSA_ARGB</code><a class="headerlink" href="#_CPPv49udSA_ARGB" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_color32 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udSA_Normal">
<span id="_CPPv311udSA_Normal"></span><span id="_CPPv211udSA_Normal"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacaa05106648ae0849a6dde359f5963084a"></span><code class="sig-name descname">udSA_Normal</code><a class="headerlink" href="#_CPPv411udSA_Normal" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_normal32 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udSA_Altitude">
<span id="_CPPv313udSA_Altitude"></span><span id="_CPPv213udSA_Altitude"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca03a55c33833a780c8455a4702ade0ac7"></span><code class="sig-name descname">udSA_Altitude</code><a class="headerlink" href="#_CPPv413udSA_Altitude" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_float32 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv48udSA_Red">
<span id="_CPPv38udSA_Red"></span><span id="_CPPv28udSA_Red"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca51204d78bc2570dd2d3305e193f2222d"></span><code class="sig-name descname">udSA_Red</code><a class="headerlink" href="#_CPPv48udSA_Red" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Legacy 16bit Red channel. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udSA_Green">
<span id="_CPPv310udSA_Green"></span><span id="_CPPv210udSA_Green"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca08f8e95d20b15c39e4ad7d0b21dcf9fe"></span><code class="sig-name descname">udSA_Green</code><a class="headerlink" href="#_CPPv410udSA_Green" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Legacy 16bit Green channel. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udSA_Blue">
<span id="_CPPv39udSA_Blue"></span><span id="_CPPv29udSA_Blue"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacaebc503dd0a89c58648ddbd1f99d9b136"></span><code class="sig-name descname">udSA_Blue</code><a class="headerlink" href="#_CPPv49udSA_Blue" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Legacy 16bit Blue channel. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udSA_Intensity">
<span id="_CPPv314udSA_Intensity"></span><span id="_CPPv214udSA_Intensity"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca87cedb5c2d53b632dd5e3c0282167ba8"></span><code class="sig-name descname">udSA_Intensity</code><a class="headerlink" href="#_CPPv414udSA_Intensity" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint16 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv48udSA_NIR">
<span id="_CPPv38udSA_NIR"></span><span id="_CPPv28udSA_NIR"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca62c4e8e28c010e03b1b93d8cb507b15c"></span><code class="sig-name descname">udSA_NIR</code><a class="headerlink" href="#_CPPv48udSA_NIR" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint16 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udSA_ScanAngle">
<span id="_CPPv314udSA_ScanAngle"></span><span id="_CPPv214udSA_ScanAngle"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca10fe5414e59c1f976d7e6f997a7290c7"></span><code class="sig-name descname">udSA_ScanAngle</code><a class="headerlink" href="#_CPPv414udSA_ScanAngle" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint16 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udSA_PointSourceID">
<span id="_CPPv318udSA_PointSourceID"></span><span id="_CPPv218udSA_PointSourceID"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacadf9edac874059d57c2b00fb58a8c22bf"></span><code class="sig-name descname">udSA_PointSourceID</code><a class="headerlink" href="#_CPPv418udSA_PointSourceID" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint16 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udSA_SourceFileID">
<span id="_CPPv317udSA_SourceFileID"></span><span id="_CPPv217udSA_SourceFileID"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca822466a160d3526159f95431f9d7e33b"></span><code class="sig-name descname">udSA_SourceFileID</code><a class="headerlink" href="#_CPPv417udSA_SourceFileID" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint16 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udSA_Classification">
<span id="_CPPv319udSA_Classification"></span><span id="_CPPv219udSA_Classification"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacaf707ed70938aae53a7ff6b7d3f1c5f2e"></span><code class="sig-name descname">udSA_Classification</code><a class="headerlink" href="#_CPPv419udSA_Classification" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udSA_ReturnNumber">
<span id="_CPPv317udSA_ReturnNumber"></span><span id="_CPPv217udSA_ReturnNumber"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca261c89c5c89b75529060c47c75f02f4e"></span><code class="sig-name descname">udSA_ReturnNumber</code><a class="headerlink" href="#_CPPv417udSA_ReturnNumber" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udSA_NumberOfReturns">
<span id="_CPPv320udSA_NumberOfReturns"></span><span id="_CPPv220udSA_NumberOfReturns"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacae07f3184485f27410774fd6a8b97b69c"></span><code class="sig-name descname">udSA_NumberOfReturns</code><a class="headerlink" href="#_CPPv420udSA_NumberOfReturns" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udSA_ClassificationFlags">
<span id="_CPPv324udSA_ClassificationFlags"></span><span id="_CPPv224udSA_ClassificationFlags"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aacadea2f9672be9a6aed4387a5f4a4c6456"></span><code class="sig-name descname">udSA_ClassificationFlags</code><a class="headerlink" href="#_CPPv424udSA_ClassificationFlags" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udSA_ScannerChannel">
<span id="_CPPv319udSA_ScannerChannel"></span><span id="_CPPv219udSA_ScannerChannel"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca163a11bf8ce32529ed6c078c266ceddc"></span><code class="sig-name descname">udSA_ScannerChannel</code><a class="headerlink" href="#_CPPv419udSA_ScannerChannel" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udSA_ScanDirection">
<span id="_CPPv318udSA_ScanDirection"></span><span id="_CPPv218udSA_ScanDirection"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca35b36930d5fb3df0e424f37e6b492cc2"></span><code class="sig-name descname">udSA_ScanDirection</code><a class="headerlink" href="#_CPPv418udSA_ScanDirection" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udSA_EdgeOfFlightLine">
<span id="_CPPv321udSA_EdgeOfFlightLine"></span><span id="_CPPv221udSA_EdgeOfFlightLine"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca97ccae5977f2ef5140d189c0454a2b78"></span><code class="sig-name descname">udSA_EdgeOfFlightLine</code><a class="headerlink" href="#_CPPv421udSA_EdgeOfFlightLine" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udSA_ScanAngleRank">
<span id="_CPPv318udSA_ScanAngleRank"></span><span id="_CPPv218udSA_ScanAngleRank"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca277b0cdf85354cb55ff763277de6f3d0"></span><code class="sig-name descname">udSA_ScanAngleRank</code><a class="headerlink" href="#_CPPv418udSA_ScanAngleRank" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udATI_uint8 </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udSA_LasUserData">
<span id="_CPPv316udSA_LasUserData"></span><span id="_CPPv216udSA_LasUserData"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca438a089b7398d522d01e16faba7c4cbc"></span><code class="sig-name descname">udSA_LasUserData</code><a class="headerlink" href="#_CPPv416udSA_LasUserData" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Specific LAS User data field (udATI_uint8) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udSA_Count">
<span id="_CPPv310udSA_Count"></span><span id="_CPPv210udSA_Count"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca30d6babd3eec0ec6cd3af3aeabd22eb0"></span><code class="sig-name descname">udSA_Count</code><a class="headerlink" href="#_CPPv410udSA_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Count helper value to iterate this enum. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udSA_AllAttributes">
<span id="_CPPv318udSA_AllAttributes"></span><span id="_CPPv218udSA_AllAttributes"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca7164813156544c317b0e06566760ae7b"></span><code class="sig-name descname">udSA_AllAttributes</code> = <a class="reference internal" href="#_CPPv410udSA_Count" title="udSA_Count">udSA_Count</a><a class="headerlink" href="#_CPPv418udSA_AllAttributes" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internal sentinal value used by some functions to indicate getting start of interleaved attributes. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udSA_First">
<span id="_CPPv310udSA_First"></span><span id="_CPPv210udSA_First"></span><span class="target" id="ud_attributes_8h_1aa466e4881074e000681cb40d12670aaca9fae84ba7809c11045aa5f92598ba92a"></span><code class="sig-name descname">udSA_First</code> = 0<a class="headerlink" href="#_CPPv410udSA_First" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Generally used to initialise an attribute value for use in loops. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv421udStdAttributeContent">
<span id="_CPPv321udStdAttributeContent"></span><span id="_CPPv221udStdAttributeContent"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fb"></span><em class="property">enum </em><code class="sig-name descname">udStdAttributeContent</code><a class="headerlink" href="#_CPPv421udStdAttributeContent" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The standard UDS attributes provided as a bitfield <dl class="simple">
<dt><strong>Note</strong></dt><dd><p>udStdAttributeContent enums are guaranteed to be 1 &lt;&lt; associated udStdAttribute value </p>
</dd>
</dl>
</p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv410udSAC_None">
<span id="_CPPv310udSAC_None"></span><span id="_CPPv210udSAC_None"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbae78265bb943dde5ae8b6d1267b5eac14"></span><code class="sig-name descname">udSAC_None</code> = (0)<a class="headerlink" href="#_CPPv410udSAC_None" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udSAC_GPSTime">
<span id="_CPPv313udSAC_GPSTime"></span><span id="_CPPv213udSAC_GPSTime"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba0eb02ab649c11d7f342e097be1da7e14"></span><code class="sig-name descname">udSAC_GPSTime</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv412udSA_GPSTime" title="udSA_GPSTime">udSA_GPSTime</a>)<a class="headerlink" href="#_CPPv413udSAC_GPSTime" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udSAC_PrimitiveID">
<span id="_CPPv317udSAC_PrimitiveID"></span><span id="_CPPv217udSAC_PrimitiveID"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba4b94fb4b1e2969d4f7ca38e6e4f42c2c"></span><code class="sig-name descname">udSAC_PrimitiveID</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv416udSA_PrimitiveID" title="udSA_PrimitiveID">udSA_PrimitiveID</a>)<a class="headerlink" href="#_CPPv417udSAC_PrimitiveID" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udSAC_PrimitiveU">
<span id="_CPPv316udSAC_PrimitiveU"></span><span id="_CPPv216udSAC_PrimitiveU"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba19e9fb0300a28978671c65e35699cde3"></span><code class="sig-name descname">udSAC_PrimitiveU</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv415udSA_PrimitiveU" title="udSA_PrimitiveU">udSA_PrimitiveU</a>)<a class="headerlink" href="#_CPPv416udSAC_PrimitiveU" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udSAC_PrimitiveV">
<span id="_CPPv316udSAC_PrimitiveV"></span><span id="_CPPv216udSAC_PrimitiveV"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaa484df30ba5cced41d064b94999fa26c"></span><code class="sig-name descname">udSAC_PrimitiveV</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv415udSA_PrimitiveV" title="udSA_PrimitiveV">udSA_PrimitiveV</a>)<a class="headerlink" href="#_CPPv416udSAC_PrimitiveV" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udSAC_PrimitiveMaterialID">
<span id="_CPPv325udSAC_PrimitiveMaterialID"></span><span id="_CPPv225udSAC_PrimitiveMaterialID"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbad03a9b40297f811da67421b25923dc7a"></span><code class="sig-name descname">udSAC_PrimitiveMaterialID</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv424udSA_PrimitiveMaterialID" title="udSA_PrimitiveMaterialID">udSA_PrimitiveMaterialID</a>)<a class="headerlink" href="#_CPPv425udSAC_PrimitiveMaterialID" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udSAC_ARGB">
<span id="_CPPv310udSAC_ARGB"></span><span id="_CPPv210udSAC_ARGB"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba69416467bf1122b8fb59203b672b7df3"></span><code class="sig-name descname">udSAC_ARGB</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv49udSA_ARGB" title="udSA_ARGB">udSA_ARGB</a>)<a class="headerlink" href="#_CPPv410udSAC_ARGB" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udSAC_Normal">
<span id="_CPPv312udSAC_Normal"></span><span id="_CPPv212udSAC_Normal"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaf5b14ea95d922474d4717f0cd214e52e"></span><code class="sig-name descname">udSAC_Normal</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv411udSA_Normal" title="udSA_Normal">udSA_Normal</a>)<a class="headerlink" href="#_CPPv412udSAC_Normal" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udSAC_Altitude">
<span id="_CPPv314udSAC_Altitude"></span><span id="_CPPv214udSAC_Altitude"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaca0e533c4551271b32208afd85a226b1"></span><code class="sig-name descname">udSAC_Altitude</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv413udSA_Altitude" title="udSA_Altitude">udSA_Altitude</a>)<a class="headerlink" href="#_CPPv414udSAC_Altitude" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udSAC_Red">
<span id="_CPPv39udSAC_Red"></span><span id="_CPPv29udSAC_Red"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba7961bfe4bb8d272b2d05d5488433dd29"></span><code class="sig-name descname">udSAC_Red</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv48udSA_Red" title="udSA_Red">udSA_Red</a>)<a class="headerlink" href="#_CPPv49udSAC_Red" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udSAC_Green">
<span id="_CPPv311udSAC_Green"></span><span id="_CPPv211udSAC_Green"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaf0ac893c782cdba1a9fbc2a16e8f13ad"></span><code class="sig-name descname">udSAC_Green</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv410udSA_Green" title="udSA_Green">udSA_Green</a>)<a class="headerlink" href="#_CPPv411udSAC_Green" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udSAC_Blue">
<span id="_CPPv310udSAC_Blue"></span><span id="_CPPv210udSAC_Blue"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba3c5116b9c4a578a18663ec0a9f27dce0"></span><code class="sig-name descname">udSAC_Blue</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv49udSA_Blue" title="udSA_Blue">udSA_Blue</a>)<a class="headerlink" href="#_CPPv410udSAC_Blue" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udSAC_Intensity">
<span id="_CPPv315udSAC_Intensity"></span><span id="_CPPv215udSAC_Intensity"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba2bf5901eb15c81de34cbb2e0abe62add"></span><code class="sig-name descname">udSAC_Intensity</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv414udSA_Intensity" title="udSA_Intensity">udSA_Intensity</a>)<a class="headerlink" href="#_CPPv415udSAC_Intensity" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udSAC_NIR">
<span id="_CPPv39udSAC_NIR"></span><span id="_CPPv29udSAC_NIR"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaf8d462e7e917be5b0a2cc6ab2d1c522e"></span><code class="sig-name descname">udSAC_NIR</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv48udSA_NIR" title="udSA_NIR">udSA_NIR</a>)<a class="headerlink" href="#_CPPv49udSAC_NIR" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udSAC_ScanAngle">
<span id="_CPPv315udSAC_ScanAngle"></span><span id="_CPPv215udSAC_ScanAngle"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba964dee36f630b672c455853a2b9eea0e"></span><code class="sig-name descname">udSAC_ScanAngle</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv414udSA_ScanAngle" title="udSA_ScanAngle">udSA_ScanAngle</a>)<a class="headerlink" href="#_CPPv415udSAC_ScanAngle" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udSAC_PointSourceID">
<span id="_CPPv319udSAC_PointSourceID"></span><span id="_CPPv219udSAC_PointSourceID"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba3acb72d38eddfbad0468fa0d38ac5898"></span><code class="sig-name descname">udSAC_PointSourceID</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv418udSA_PointSourceID" title="udSA_PointSourceID">udSA_PointSourceID</a>)<a class="headerlink" href="#_CPPv419udSAC_PointSourceID" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udSAC_SourceFileID">
<span id="_CPPv318udSAC_SourceFileID"></span><span id="_CPPv218udSAC_SourceFileID"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba65fd52b1597b789b2421c7b658c7c899"></span><code class="sig-name descname">udSAC_SourceFileID</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv417udSA_SourceFileID" title="udSA_SourceFileID">udSA_SourceFileID</a>)<a class="headerlink" href="#_CPPv418udSAC_SourceFileID" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udSAC_Classification">
<span id="_CPPv320udSAC_Classification"></span><span id="_CPPv220udSAC_Classification"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba7e09b88b3955baadef7a7d0eb9fc6006"></span><code class="sig-name descname">udSAC_Classification</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv419udSA_Classification" title="udSA_Classification">udSA_Classification</a>)<a class="headerlink" href="#_CPPv420udSAC_Classification" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udSAC_ReturnNumber">
<span id="_CPPv318udSAC_ReturnNumber"></span><span id="_CPPv218udSAC_ReturnNumber"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba0c2f16b072aaa20f0f4e378297ff753a"></span><code class="sig-name descname">udSAC_ReturnNumber</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv417udSA_ReturnNumber" title="udSA_ReturnNumber">udSA_ReturnNumber</a>)<a class="headerlink" href="#_CPPv418udSAC_ReturnNumber" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udSAC_NumberOfReturns">
<span id="_CPPv321udSAC_NumberOfReturns"></span><span id="_CPPv221udSAC_NumberOfReturns"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbab123cebf9d4014475cac954e1ab9a566"></span><code class="sig-name descname">udSAC_NumberOfReturns</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv420udSA_NumberOfReturns" title="udSA_NumberOfReturns">udSA_NumberOfReturns</a>)<a class="headerlink" href="#_CPPv421udSAC_NumberOfReturns" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udSAC_ClassificationFlags">
<span id="_CPPv325udSAC_ClassificationFlags"></span><span id="_CPPv225udSAC_ClassificationFlags"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba8cc3879d723181858ec7622760074d81"></span><code class="sig-name descname">udSAC_ClassificationFlags</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv424udSA_ClassificationFlags" title="udSA_ClassificationFlags">udSA_ClassificationFlags</a>)<a class="headerlink" href="#_CPPv425udSAC_ClassificationFlags" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udSAC_ScannerChannel">
<span id="_CPPv320udSAC_ScannerChannel"></span><span id="_CPPv220udSAC_ScannerChannel"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaf929d75f6a30b8d3a591fb2fa3b5daf6"></span><code class="sig-name descname">udSAC_ScannerChannel</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv419udSA_ScannerChannel" title="udSA_ScannerChannel">udSA_ScannerChannel</a>)<a class="headerlink" href="#_CPPv420udSAC_ScannerChannel" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udSAC_ScanDirection">
<span id="_CPPv319udSAC_ScanDirection"></span><span id="_CPPv219udSAC_ScanDirection"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbabdda07760ef82ca209de4bc2032cc9d8"></span><code class="sig-name descname">udSAC_ScanDirection</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv418udSA_ScanDirection" title="udSA_ScanDirection">udSA_ScanDirection</a>)<a class="headerlink" href="#_CPPv419udSAC_ScanDirection" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv422udSAC_EdgeOfFlightLine">
<span id="_CPPv322udSAC_EdgeOfFlightLine"></span><span id="_CPPv222udSAC_EdgeOfFlightLine"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba58562227ce66153d2b71f0b45c3f4908"></span><code class="sig-name descname">udSAC_EdgeOfFlightLine</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv421udSA_EdgeOfFlightLine" title="udSA_EdgeOfFlightLine">udSA_EdgeOfFlightLine</a>)<a class="headerlink" href="#_CPPv422udSAC_EdgeOfFlightLine" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udSAC_ScanAngleRank">
<span id="_CPPv319udSAC_ScanAngleRank"></span><span id="_CPPv219udSAC_ScanAngleRank"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbae8b62717d550d7cb67125006197d507b"></span><code class="sig-name descname">udSAC_ScanAngleRank</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv418udSA_ScanAngleRank" title="udSA_ScanAngleRank">udSA_ScanAngleRank</a>)<a class="headerlink" href="#_CPPv419udSAC_ScanAngleRank" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udSAC_LasUserData">
<span id="_CPPv317udSAC_LasUserData"></span><span id="_CPPv217udSAC_LasUserData"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba23cc2b0640210f7dd3fcd73cdfa3d779"></span><code class="sig-name descname">udSAC_LasUserData</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv416udSA_LasUserData" title="udSA_LasUserData">udSA_LasUserData</a>)<a class="headerlink" href="#_CPPv417udSAC_LasUserData" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udSAC_AllAttributes">
<span id="_CPPv319udSAC_AllAttributes"></span><span id="_CPPv219udSAC_AllAttributes"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba2f69dd3f9f28e010ef3bff8b31855cbb"></span><code class="sig-name descname">udSAC_AllAttributes</code> = (1 &lt;&lt; <a class="reference internal" href="#_CPPv418udSA_AllAttributes" title="udSA_AllAttributes">udSA_AllAttributes</a>) - 1<a class="headerlink" href="#_CPPv419udSAC_AllAttributes" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udSAC_64BitAttributes">
<span id="_CPPv321udSAC_64BitAttributes"></span><span id="_CPPv221udSAC_64BitAttributes"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fba53f2f257c4d476bf02cb4e41cf2525cd"></span><code class="sig-name descname">udSAC_64BitAttributes</code> = <a class="reference internal" href="#_CPPv413udSAC_GPSTime" title="udSAC_GPSTime">udSAC_GPSTime</a><a class="headerlink" href="#_CPPv421udSAC_64BitAttributes" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udSAC_32BitAttributes">
<span id="_CPPv321udSAC_32BitAttributes"></span><span id="_CPPv221udSAC_32BitAttributes"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbabc56f0e9cacf3b89901476bec2e2a124"></span><code class="sig-name descname">udSAC_32BitAttributes</code> = <a class="reference internal" href="#_CPPv417udSAC_PrimitiveID" title="udSAC_PrimitiveID">udSAC_PrimitiveID</a> + <a class="reference internal" href="#_CPPv410udSAC_ARGB" title="udSAC_ARGB">udSAC_ARGB</a> + <a class="reference internal" href="#_CPPv412udSAC_Normal" title="udSAC_Normal">udSAC_Normal</a> + <a class="reference internal" href="#_CPPv425udSAC_PrimitiveMaterialID" title="udSAC_PrimitiveMaterialID">udSAC_PrimitiveMaterialID</a> + <a class="reference internal" href="#_CPPv416udSAC_PrimitiveU" title="udSAC_PrimitiveU">udSAC_PrimitiveU</a> + <a class="reference internal" href="#_CPPv416udSAC_PrimitiveV" title="udSAC_PrimitiveV">udSAC_PrimitiveV</a> + <a class="reference internal" href="#_CPPv414udSAC_Altitude" title="udSAC_Altitude">udSAC_Altitude</a><a class="headerlink" href="#_CPPv421udSAC_32BitAttributes" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udSAC_16BitAttributes">
<span id="_CPPv321udSAC_16BitAttributes"></span><span id="_CPPv221udSAC_16BitAttributes"></span><span class="target" id="ud_attributes_8h_1aaedf6264228a802993e939c2e14b17fbaf6cc13bdb5531f2d4257e90b8b3aac6d"></span><code class="sig-name descname">udSAC_16BitAttributes</code> = <a class="reference internal" href="#_CPPv415udSAC_Intensity" title="udSAC_Intensity">udSAC_Intensity</a> + <a class="reference internal" href="#_CPPv49udSAC_NIR" title="udSAC_NIR">udSAC_NIR</a> + <a class="reference internal" href="#_CPPv415udSAC_ScanAngle" title="udSAC_ScanAngle">udSAC_ScanAngle</a> + <a class="reference internal" href="#_CPPv419udSAC_PointSourceID" title="udSAC_PointSourceID">udSAC_PointSourceID</a> + <a class="reference internal" href="#_CPPv418udSAC_SourceFileID" title="udSAC_SourceFileID">udSAC_SourceFileID</a><a class="headerlink" href="#_CPPv421udSAC_16BitAttributes" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv420udAttributeBlendType">
<span id="_CPPv320udAttributeBlendType"></span><span id="_CPPv220udAttributeBlendType"></span><span class="target" id="ud_attributes_8h_1ad5153dac7c1a9c0cd2254528485a5a9f"></span><em class="property">enum </em><code class="sig-name descname">udAttributeBlendType</code><a class="headerlink" href="#_CPPv420udAttributeBlendType" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the various options for how an attribute is calculated when merging voxels while generating LODs </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv410udABT_Mean">
<span id="_CPPv310udABT_Mean"></span><span id="_CPPv210udABT_Mean"></span><span class="target" id="ud_attributes_8h_1ad5153dac7c1a9c0cd2254528485a5a9fad773904479dd832fc3c9090e28b2c0f3"></span><code class="sig-name descname">udABT_Mean</code><a class="headerlink" href="#_CPPv410udABT_Mean" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This blend type merges nearby voxels together and finds the mean value for the attribute on those nodes. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udABT_FirstChild">
<span id="_CPPv316udABT_FirstChild"></span><span id="_CPPv216udABT_FirstChild"></span><span class="target" id="ud_attributes_8h_1ad5153dac7c1a9c0cd2254528485a5a9fa246ccae398282bb5f416738e1fa61081"></span><code class="sig-name descname">udABT_FirstChild</code><a class="headerlink" href="#_CPPv416udABT_FirstChild" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This blend type selects the value from one of the nodes and uses that. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udABT_NoLOD">
<span id="_CPPv311udABT_NoLOD"></span><span id="_CPPv211udABT_NoLOD"></span><span class="target" id="ud_attributes_8h_1ad5153dac7c1a9c0cd2254528485a5a9fa3f7be00feffb1fb639d0558a9438cd5c"></span><code class="sig-name descname">udABT_NoLOD</code><a class="headerlink" href="#_CPPv411udABT_NoLOD" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This blend type has no information in LODs and is only stored in the highest detail level. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udABT_Count">
<span id="_CPPv311udABT_Count"></span><span id="_CPPv211udABT_Count"></span><span class="target" id="ud_attributes_8h_1ad5153dac7c1a9c0cd2254528485a5a9fa4b8411ccb76b5b219a220fb3350dd24f"></span><code class="sig-name descname">udABT_Count</code><a class="headerlink" href="#_CPPv411udABT_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of blend types. Used internally but can be used as an iterator max when checking attribute blend modes. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv419udAttributeTypeInfo">
<span id="_CPPv319udAttributeTypeInfo"></span><span id="_CPPv219udAttributeTypeInfo"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001"></span><em class="property">enum </em><code class="sig-name descname">udAttributeTypeInfo</code><a class="headerlink" href="#_CPPv419udAttributeTypeInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the types that could be contained in attributes </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv413udATI_Invalid">
<span id="_CPPv313udATI_Invalid"></span><span id="_CPPv213udATI_Invalid"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a7ff059af6b6238ec45d33f0147358fa8"></span><code class="sig-name descname">udATI_Invalid</code> = 0<a class="headerlink" href="#_CPPv413udATI_Invalid" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udATI_SizeMask">
<span id="_CPPv314udATI_SizeMask"></span><span id="_CPPv214udATI_SizeMask"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001ae0e54134c949317a85aacbb230495131"></span><code class="sig-name descname">udATI_SizeMask</code> = 0x000ff<a class="headerlink" href="#_CPPv414udATI_SizeMask" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udATI_SizeShift">
<span id="_CPPv315udATI_SizeShift"></span><span id="_CPPv215udATI_SizeShift"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001aabce5e18634b689a96eadf259c49227a"></span><code class="sig-name descname">udATI_SizeShift</code> = 0<a class="headerlink" href="#_CPPv415udATI_SizeShift" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udATI_ComponentCountMask">
<span id="_CPPv324udATI_ComponentCountMask"></span><span id="_CPPv224udATI_ComponentCountMask"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a95ddea7dea52b19475c30b5a36ed8d8b"></span><code class="sig-name descname">udATI_ComponentCountMask</code> = 0x0ff00<a class="headerlink" href="#_CPPv424udATI_ComponentCountMask" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udATI_ComponentCountShift">
<span id="_CPPv325udATI_ComponentCountShift"></span><span id="_CPPv225udATI_ComponentCountShift"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001af92fe35e13d481755d42306838bf1ab3"></span><code class="sig-name descname">udATI_ComponentCountShift</code> = 8<a class="headerlink" href="#_CPPv425udATI_ComponentCountShift" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udATI_Signed">
<span id="_CPPv312udATI_Signed"></span><span id="_CPPv212udATI_Signed"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a2d96dd0aaca8c88c259c893ebcf10008"></span><code class="sig-name descname">udATI_Signed</code> = 0x10000<a class="headerlink" href="#_CPPv412udATI_Signed" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udATI_Float">
<span id="_CPPv311udATI_Float"></span><span id="_CPPv211udATI_Float"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a2040a328c01be385f59201ca2e68db42"></span><code class="sig-name descname">udATI_Float</code> = 0x20000<a class="headerlink" href="#_CPPv411udATI_Float" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udATI_Color">
<span id="_CPPv311udATI_Color"></span><span id="_CPPv211udATI_Color"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a8c6ccb8b0ae0d211f1276bc0375048fa"></span><code class="sig-name descname">udATI_Color</code> = 0x40000<a class="headerlink" href="#_CPPv411udATI_Color" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udATI_Normal">
<span id="_CPPv312udATI_Normal"></span><span id="_CPPv212udATI_Normal"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001ac4d3699642ac18ffc10c0a20c5ac77fd"></span><code class="sig-name descname">udATI_Normal</code> = 0x80000<a class="headerlink" href="#_CPPv412udATI_Normal" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udATI_uint8">
<span id="_CPPv311udATI_uint8"></span><span id="_CPPv211udATI_uint8"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001ae468bb640c8f56b6e02ddb9fa733e998"></span><code class="sig-name descname">udATI_uint8</code> = 1<a class="headerlink" href="#_CPPv411udATI_uint8" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udATI_uint16">
<span id="_CPPv312udATI_uint16"></span><span id="_CPPv212udATI_uint16"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001ad0494a7d8fbc63da9bb37308e138303a"></span><code class="sig-name descname">udATI_uint16</code> = 2<a class="headerlink" href="#_CPPv412udATI_uint16" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udATI_uint32">
<span id="_CPPv312udATI_uint32"></span><span id="_CPPv212udATI_uint32"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a4ca85cc9df33b3f9531aa72bc5ad55c5"></span><code class="sig-name descname">udATI_uint32</code> = 4<a class="headerlink" href="#_CPPv412udATI_uint32" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udATI_uint64">
<span id="_CPPv312udATI_uint64"></span><span id="_CPPv212udATI_uint64"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001aa4ed13272f4839d8fc744b8c51d2114f"></span><code class="sig-name descname">udATI_uint64</code> = 8<a class="headerlink" href="#_CPPv412udATI_uint64" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udATI_int8">
<span id="_CPPv310udATI_int8"></span><span id="_CPPv210udATI_int8"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a8358cd825c56db6fafb420bc13334f53"></span><code class="sig-name descname">udATI_int8</code> = 1 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a><a class="headerlink" href="#_CPPv410udATI_int8" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udATI_int16">
<span id="_CPPv311udATI_int16"></span><span id="_CPPv211udATI_int16"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001accc4dfbc9dba84e593e17e779a992670"></span><code class="sig-name descname">udATI_int16</code> = 2 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a><a class="headerlink" href="#_CPPv411udATI_int16" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udATI_int32">
<span id="_CPPv311udATI_int32"></span><span id="_CPPv211udATI_int32"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a482eebd49264e5e165ecd5a4ea012a99"></span><code class="sig-name descname">udATI_int32</code> = 4 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a><a class="headerlink" href="#_CPPv411udATI_int32" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udATI_int64">
<span id="_CPPv311udATI_int64"></span><span id="_CPPv211udATI_int64"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a2943d11c0780ad77ba50c78740d10328"></span><code class="sig-name descname">udATI_int64</code> = 8 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a><a class="headerlink" href="#_CPPv411udATI_int64" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udATI_float32">
<span id="_CPPv313udATI_float32"></span><span id="_CPPv213udATI_float32"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a7b63358b2051042b069bd70fc899e203"></span><code class="sig-name descname">udATI_float32</code> = 4 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a> | <a class="reference internal" href="#_CPPv411udATI_Float" title="udATI_Float">udATI_Float</a><a class="headerlink" href="#_CPPv413udATI_float32" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udATI_float64">
<span id="_CPPv313udATI_float64"></span><span id="_CPPv213udATI_float64"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001ad7d7335a173573227de852525a2ef11f"></span><code class="sig-name descname">udATI_float64</code> = 8 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a> | <a class="reference internal" href="#_CPPv411udATI_Float" title="udATI_Float">udATI_Float</a><a class="headerlink" href="#_CPPv413udATI_float64" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udATI_color32">
<span id="_CPPv313udATI_color32"></span><span id="_CPPv213udATI_color32"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001ac64c22d9ef78db8ecdd914e8bb29b715"></span><code class="sig-name descname">udATI_color32</code> = 4 | <a class="reference internal" href="#_CPPv411udATI_Color" title="udATI_Color">udATI_Color</a><a class="headerlink" href="#_CPPv413udATI_color32" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udATI_normal32">
<span id="_CPPv314udATI_normal32"></span><span id="_CPPv214udATI_normal32"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001aa1d2ea72a547fa2a2e2d3fa1861e1243"></span><code class="sig-name descname">udATI_normal32</code> = 4 | <a class="reference internal" href="#_CPPv412udATI_Normal" title="udATI_Normal">udATI_Normal</a><a class="headerlink" href="#_CPPv414udATI_normal32" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udATI_vec3f32">
<span id="_CPPv313udATI_vec3f32"></span><span id="_CPPv213udATI_vec3f32"></span><span class="target" id="ud_attributes_8h_1abce3b03c7c26c88db850fa8dbb645001a6988ecde120a415aae1c595b96257e4b"></span><code class="sig-name descname">udATI_vec3f32</code> = 12 | 0x300 | <a class="reference internal" href="#_CPPv412udATI_Signed" title="udATI_Signed">udATI_Signed</a> | <a class="reference internal" href="#_CPPv411udATI_Float" title="udATI_Float">udATI_Float</a><a class="headerlink" href="#_CPPv413udATI_vec3f32" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv421udAttributeSet_CreateP14udAttributeSet21udStdAttributeContent8uint32_t">
<span id="_CPPv321udAttributeSet_CreateP14udAttributeSet21udStdAttributeContent8uint32_t"></span><span id="_CPPv221udAttributeSet_CreateP14udAttributeSet21udStdAttributeContent8uint32_t"></span><span id="udAttributeSet_Create__udAttributeSetP.udStdAttributeContent.uint32_t"></span><span class="target" id="ud_attributes_8h_1a7d739c9f6431956b83b5dfa0bb3703e6"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributeSet</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv421udStdAttributeContent" title="udStdAttributeContent">udStdAttributeContent</a> <em>content</em>, uint32_t <em>additionalCustomAttributes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udAttributeSet_CreateP14udAttributeSet21udStdAttributeContent8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Creates a <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a></p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the creation of the attribute set. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call udAttributeSet_Free with pAttributeSet to destroy the object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeSet</span></code>: The attribute set to allocate into </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">content</span></code>: The standard attributes that will be created, provided as bitfields </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">additionalCustomAttributes</span></code>: The count of additional attributes to generate, these will be added to the attribute set blank after the standard attributes </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udAttributeSet_DestroyP14udAttributeSet">
<span id="_CPPv322udAttributeSet_DestroyP14udAttributeSet"></span><span id="_CPPv222udAttributeSet_DestroyP14udAttributeSet"></span><span id="udAttributeSet_Destroy__udAttributeSetP"></span><span class="target" id="ud_attributes_8h_1a9422aa2b82ac0296d2e23722b09bb22a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributeSet</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udAttributeSet_DestroyP14udAttributeSet" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Free the memory created by a call to udAttributeSet_Create</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the destruction of the attribute set. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeSet</span></code>: The attribute set to free the resources of </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv443udAttributeSet_GetOffsetOfStandardAttributePK14udAttributeSet14udStdAttributeP8uint32_t">
<span id="_CPPv343udAttributeSet_GetOffsetOfStandardAttributePK14udAttributeSet14udStdAttributeP8uint32_t"></span><span id="_CPPv243udAttributeSet_GetOffsetOfStandardAttributePK14udAttributeSet14udStdAttributeP8uint32_t"></span><span id="udAttributeSet_GetOffsetOfStandardAttribute__udAttributeSetCP.udStdAttribute.uint32_tP"></span><span class="target" id="ud_attributes_8h_1af3ac3643257c17ac97ca95f69540f462"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_GetOffsetOfStandardAttribute</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributeSet</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv414udStdAttribute" title="udStdAttribute">udStdAttribute</a> <em>attribute</em>, uint32_t *<em>pOffset</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv443udAttributeSet_GetOffsetOfStandardAttributePK14udAttributeSet14udStdAttributeP8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the offset for a standard attribute so that further querying of that attribute can be performed</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the offset to pOffset </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeSet</span></code>: The attribute set to get the offset for </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">attribute</span></code>: The enum value of the attribute </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pOffset</span></code>: This pointer will be written to with the value of the offset if it is found </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv440udAttributeSet_GetOffsetOfNamedAttributePK14udAttributeSetPKcP8uint32_t">
<span id="_CPPv340udAttributeSet_GetOffsetOfNamedAttributePK14udAttributeSetPKcP8uint32_t"></span><span id="_CPPv240udAttributeSet_GetOffsetOfNamedAttributePK14udAttributeSetPKcP8uint32_t"></span><span id="udAttributeSet_GetOffsetOfNamedAttribute__udAttributeSetCP.cCP.uint32_tP"></span><span class="target" id="ud_attributes_8h_1a50709cd328c7ea8641ab47e4f26cb41c"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_GetOffsetOfNamedAttribute</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributeSet</em>, <em class="property">const</em> char *<em>pName</em>, uint32_t *<em>pOffset</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv440udAttributeSet_GetOffsetOfNamedAttributePK14udAttributeSetPKcP8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the offset for a named attribute so that further querying of that attribute can be performed</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the offset to pOffset </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeSet</span></code>: The attribute set to get the offset for </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: The name of the attribute </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pOffset</span></code>: This pointer will be written to with the value of the offset if it is found </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv444udAttributeSet_GetDescriptorOfNamedAttributePK14udAttributeSetPKcP21udAttributeDescriptor">
<span id="_CPPv344udAttributeSet_GetDescriptorOfNamedAttributePK14udAttributeSetPKcP21udAttributeDescriptor"></span><span id="_CPPv244udAttributeSet_GetDescriptorOfNamedAttributePK14udAttributeSetPKcP21udAttributeDescriptor"></span><span id="udAttributeSet_GetDescriptorOfNamedAttribute__udAttributeSetCP.cCP.udAttributeDescriptorP"></span><span class="target" id="ud_attributes_8h_1a35118ea4e5852cf09433ef6f45611e7c"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_GetDescriptorOfNamedAttribute</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributeSet</em>, <em class="property">const</em> char *<em>pName</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv421udAttributeDescriptor" title="udAttributeDescriptor">udAttributeDescriptor</a> *<em>pDescriptor</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv444udAttributeSet_GetDescriptorOfNamedAttributePK14udAttributeSetPKcP21udAttributeDescriptor" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the descriptor of a named attribute stored in a <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a></p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the descriptor to pDescriptor </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributeSet</span></code>: The attribute set to get the descriptor from </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: The name of the attribute </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pDescriptor</span></code>: This pointer to be written to with the value of the descriptor if it is found </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv444udAttribute_GetDescriptorOfStandardAttributeK14udStdAttributeP21udAttributeDescriptor">
<span id="_CPPv344udAttribute_GetDescriptorOfStandardAttributeK14udStdAttributeP21udAttributeDescriptor"></span><span id="_CPPv244udAttribute_GetDescriptorOfStandardAttributeK14udStdAttributeP21udAttributeDescriptor"></span><span id="udAttribute_GetDescriptorOfStandardAttribute__udStdAttributeC.udAttributeDescriptorP"></span><span class="target" id="ud_attributes_8h_1a2a26b2143ec88439f270a4b15390c27e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttribute_GetDescriptorOfStandardAttribute</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">enum</em> <a class="reference internal" href="#_CPPv414udStdAttribute" title="udStdAttribute">udStdAttribute</a> <em>attribute</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv421udAttributeDescriptor" title="udAttributeDescriptor">udAttributeDescriptor</a> *<em>pDescriptor</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv444udAttribute_GetDescriptorOfStandardAttributeK14udStdAttributeP21udAttributeDescriptor" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the descriptor of a standard attribute</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the descriptor to pDescriptor </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">attribute</span></code>: The standard attribute to return the descriptor of </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pDescriptor</span></code>: This pointer to be written to with the value of the descriptor if it is found </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udAttributeSet_EncodeNormalP8uint32_tAL3E_Kf">
<span id="_CPPv327udAttributeSet_EncodeNormalP8uint32_tAL3E_Kf"></span><span id="_CPPv227udAttributeSet_EncodeNormalP8uint32_tA3_Kf"></span><span id="udAttributeSet_EncodeNormal__uint32_tP.floatCA"></span><span class="target" id="ud_attributes_8h_1a7d72e57970471868676a89606ad32984"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_EncodeNormal</code><span class="sig-paren">(</span>uint32_t *<em>pEncoded</em>, <em class="property">const</em> float <em>xyz</em>[3]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udAttributeSet_EncodeNormalP8uint32_tAL3E_Kf" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Encodes a normal vector as a uint32 suitable for storage in the udNormal attribute field</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of encoding the normal and writing it to pEncoded </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pEncoded</span></code>: The pointer to store the result of encoding the normal in </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">xyz</span></code>: An array representing the 3 components of the vector to be encoded. The vector must be normalised </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udAttributeSet_DecodeNormal8uint32_tAL3E_f">
<span id="_CPPv327udAttributeSet_DecodeNormal8uint32_tAL3E_f"></span><span id="_CPPv227udAttributeSet_DecodeNormal8uint32_tA3_f"></span><span id="udAttributeSet_DecodeNormal__uint32_t.floatA"></span><span class="target" id="ud_attributes_8h_1a4eee1eacf93f1fb94d3104d71a06382d"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udAttributeSet_DecodeNormal</code><span class="sig-paren">(</span>uint32_t <em>encoded</em>, float <em>xyz</em>[3]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udAttributeSet_DecodeNormal8uint32_tAL3E_f" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Decodes a normal vector as a uint32 to an array of 3 floats</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value indicating the success of the operation </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">encoded</span></code>: The encoded normal to be decoded </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">xyz</span></code>: An array representing the 3 components of the decoded vector to be written to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv421udAttributeDescriptor">
<span id="_CPPv321udAttributeDescriptor"></span><span id="_CPPv221udAttributeDescriptor"></span><span id="udAttributeDescriptor"></span><span class="target" id="structud_attribute_descriptor"></span><em class="property">struct </em><code class="sig-name descname">udAttributeDescriptor</code><a class="headerlink" href="#_CPPv421udAttributeDescriptor" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udAttributes.h&gt;</em><p>Describes the contents of an attribute stream including its size, type and how it gets blended in LOD layers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N21udAttributeDescriptor8typeInfoE">
<span id="_CPPv3N21udAttributeDescriptor8typeInfoE"></span><span id="_CPPv2N21udAttributeDescriptor8typeInfoE"></span><span id="udAttributeDescriptor::typeInfo__udAttributeTypeInfo"></span><span class="target" id="structud_attribute_descriptor_1a7c4368ccf09e19b7d1f836ce7f11d53f"></span><a class="reference internal" href="#_CPPv419udAttributeTypeInfo" title="udAttributeTypeInfo">udAttributeTypeInfo</a> <code class="sig-name descname">typeInfo</code><a class="headerlink" href="#_CPPv4N21udAttributeDescriptor8typeInfoE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This contains information about the type. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udAttributeDescriptor9blendTypeE">
<span id="_CPPv3N21udAttributeDescriptor9blendTypeE"></span><span id="_CPPv2N21udAttributeDescriptor9blendTypeE"></span><span id="udAttributeDescriptor::blendType__udAttributeBlendType"></span><span class="target" id="structud_attribute_descriptor_1a38614c6baa6f28a79f312c5dd2ac062f"></span><a class="reference internal" href="#_CPPv420udAttributeBlendType" title="udAttributeBlendType">udAttributeBlendType</a> <code class="sig-name descname">blendType</code><a class="headerlink" href="#_CPPv4N21udAttributeDescriptor9blendTypeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Which blend type this attribute is using. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udAttributeDescriptor4nameE">
<span id="_CPPv3N21udAttributeDescriptor4nameE"></span><span id="_CPPv2N21udAttributeDescriptor4nameE"></span><span id="udAttributeDescriptor::name__cA"></span><span class="target" id="structud_attribute_descriptor_1a566dd494273d523d54c34d31846b286d"></span>char <code class="sig-name descname">name</code>[64]<a class="headerlink" href="#_CPPv4N21udAttributeDescriptor4nameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Name of the attibute. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udAttributeDescriptor6prefixE">
<span id="_CPPv3N21udAttributeDescriptor6prefixE"></span><span id="_CPPv2N21udAttributeDescriptor6prefixE"></span><span id="udAttributeDescriptor::prefix__cA"></span><span class="target" id="structud_attribute_descriptor_1aee900d1b0e9dfb72ccacae97a573e6ff"></span>char <code class="sig-name descname">prefix</code>[16]<a class="headerlink" href="#_CPPv4N21udAttributeDescriptor6prefixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Value prefix for display. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udAttributeDescriptor6suffixE">
<span id="_CPPv3N21udAttributeDescriptor6suffixE"></span><span id="_CPPv2N21udAttributeDescriptor6suffixE"></span><span id="udAttributeDescriptor::suffix__cA"></span><span class="target" id="structud_attribute_descriptor_1a39b0114fb5ac19e51106e9a599fa1f74"></span>char <code class="sig-name descname">suffix</code>[16]<a class="headerlink" href="#_CPPv4N21udAttributeDescriptor6suffixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Value suffix for display. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv414udAttributeSet">
<span id="_CPPv314udAttributeSet"></span><span id="_CPPv214udAttributeSet"></span><span id="udAttributeSet"></span><span class="target" id="structud_attribute_set"></span><em class="property">struct </em><code class="sig-name descname">udAttributeSet</code><a class="headerlink" href="#_CPPv414udAttributeSet" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udAttributes.h&gt;</em><p>Provides a set a attributes and includes an optimized lookup for standard types </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N14udAttributeSet7contentE">
<span id="_CPPv3N14udAttributeSet7contentE"></span><span id="_CPPv2N14udAttributeSet7contentE"></span><span id="udAttributeSet::content__udStdAttributeContent"></span><span class="target" id="structud_attribute_set_1aa4b617c656a6c87123f188b15d87bf2a"></span><a class="reference internal" href="#_CPPv421udStdAttributeContent" title="udStdAttributeContent">udStdAttributeContent</a> <code class="sig-name descname">content</code><a class="headerlink" href="#_CPPv4N14udAttributeSet7contentE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Which standard attributes are available (used to optimize lookups internally), they still appear in the descriptors. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udAttributeSet5countE">
<span id="_CPPv3N14udAttributeSet5countE"></span><span id="_CPPv2N14udAttributeSet5countE"></span><span id="udAttributeSet::count__uint32_t"></span><span class="target" id="structud_attribute_set_1a28d518b705d4debd0697de659c23328c"></span>uint32_t <code class="sig-name descname">count</code><a class="headerlink" href="#_CPPv4N14udAttributeSet5countE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many <a class="reference internal" href="#structud_attribute_descriptor"><span class="std std-ref">udAttributeDescriptor</span></a> objects are used in pDescriptors. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udAttributeSet9allocatedE">
<span id="_CPPv3N14udAttributeSet9allocatedE"></span><span id="_CPPv2N14udAttributeSet9allocatedE"></span><span id="udAttributeSet::allocated__uint32_t"></span><span class="target" id="structud_attribute_set_1a817b8ac925199226a9c6ddf5acdc6bea"></span>uint32_t <code class="sig-name descname">allocated</code><a class="headerlink" href="#_CPPv4N14udAttributeSet9allocatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many <a class="reference internal" href="#structud_attribute_descriptor"><span class="std std-ref">udAttributeDescriptor</span></a> objects are allocated to be used in pDescriptors. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udAttributeSet12pDescriptorsE">
<span id="_CPPv3N14udAttributeSet12pDescriptorsE"></span><span id="_CPPv2N14udAttributeSet12pDescriptorsE"></span><span id="udAttributeSet::pDescriptors__udAttributeDescriptorP"></span><span class="target" id="structud_attribute_set_1aee19826b9161ac832ddf0d624f5fae0d"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv421udAttributeDescriptor" title="udAttributeDescriptor">udAttributeDescriptor</a> *<code class="sig-name descname">pDescriptors</code><a class="headerlink" href="#_CPPv4N14udAttributeSet12pDescriptorsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>this contains the actual information on the attributes </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="udpointbuffer">
<h3>udPointBuffer<a class="headerlink" href="#udpointbuffer" title="Permalink to this headline">¶</a></h3>
<p>The udPointBuffer object provides an interface to add or get points from udPointClouds </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv427udPointBufferIndices_CreatePP20udPointBufferIndices8uint32_t">
<span id="_CPPv327udPointBufferIndices_CreatePP20udPointBufferIndices8uint32_t"></span><span id="_CPPv227udPointBufferIndices_CreatePP20udPointBufferIndices8uint32_t"></span><span id="udPointBufferIndices_Create__udPointBufferIndicesPP.uint32_t"></span><span class="target" id="ud_point_buffer_8h_1a48db0f389a57021f0d3bb880dbb1e984"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferIndices_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv420udPointBufferIndices" title="udPointBufferIndices">udPointBufferIndices</a> **<em>ppIndices</em>, uint32_t <em>numIndices</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udPointBufferIndices_CreatePP20udPointBufferIndices8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a point buffer indices object</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on creation status. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointBufferIndices_Destroy</strong> with <code class="docutils literal notranslate"><span class="pre">ppIndices</span></code> to destroy the point buffer indices object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppIndices</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_buffer_indices"><span class="std std-ref">udPointBufferIndices</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_buffer_indices"><span class="std std-ref"><span class="pre">udPointBufferIndices</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppIndices</span></code> </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">numIndices</span></code>: The maximum number of indices that this object will contain (these are preallocated to avoid allocations later) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udPointBufferIndices_DestroyPP20udPointBufferIndices">
<span id="_CPPv328udPointBufferIndices_DestroyPP20udPointBufferIndices"></span><span id="_CPPv228udPointBufferIndices_DestroyPP20udPointBufferIndices"></span><span id="udPointBufferIndices_Destroy__udPointBufferIndicesPP"></span><span class="target" id="ud_point_buffer_8h_1ac03aad7f8d4e45ad0274ddf74d56e57c"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferIndices_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv420udPointBufferIndices" title="udPointBufferIndices">udPointBufferIndices</a> **<em>ppIndices</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udPointBufferIndices_DestroyPP20udPointBufferIndices" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the <a class="reference internal" href="#structud_point_buffer_indices"><span class="std std-ref">udPointBufferIndices</span></a>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppIndices</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppIndices</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_buffer_indices"><span class="std std-ref">udPointBufferIndices</span></a>. This will deallocate any memory used. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udPointBufferF64_CreatePP16udPointBufferF648uint32_tP14udAttributeSet">
<span id="_CPPv323udPointBufferF64_CreatePP16udPointBufferF648uint32_tP14udAttributeSet"></span><span id="_CPPv223udPointBufferF64_CreatePP16udPointBufferF648uint32_tP14udAttributeSet"></span><span id="udPointBufferF64_Create__udPointBufferF64PP.uint32_t.udAttributeSetP"></span><span class="target" id="ud_point_buffer_8h_1a93bd46927ae71bcd2f3667681004bc52"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferF64_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferF64" title="udPointBufferF64">udPointBufferF64</a> **<em>ppBuffer</em>, uint32_t <em>maxPoints</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udPointBufferF64_CreatePP16udPointBufferF648uint32_tP14udAttributeSet" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a 64bit floating point, point buffer object</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on creation status. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointBufferF64_Destroy</strong> with <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code> to destroy the point buffer object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_buffer_f64"><span class="std std-ref">udPointBufferF64</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_buffer_f64"><span class="std std-ref"><span class="pre">udPointBufferF64</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">maxPoints</span></code>: The maximum number of points that this buffer will contain (these are preallocated to avoid allocations later) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributes</span></code>: The pointer to the <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a> containing information on the attributes that will be available in this point buffer; NULL will have no attributes. An internal copy is made of this attribute set. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udPointBufferF64_DestroyPP16udPointBufferF64">
<span id="_CPPv324udPointBufferF64_DestroyPP16udPointBufferF64"></span><span id="_CPPv224udPointBufferF64_DestroyPP16udPointBufferF64"></span><span id="udPointBufferF64_Destroy__udPointBufferF64PP"></span><span class="target" id="ud_point_buffer_8h_1ab7c0aa0413e100663563bbde20a3155c"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferF64_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferF64" title="udPointBufferF64">udPointBufferF64</a> **<em>ppBuffer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udPointBufferF64_DestroyPP16udPointBufferF64" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the <a class="reference internal" href="#structud_point_buffer_f64"><span class="std std-ref">udPointBufferF64</span></a>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>: The pointer pointer of the ppBuffer. This will deallocate any memory used. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udPointBufferI64_CreatePP16udPointBufferI648uint32_tP14udAttributeSet">
<span id="_CPPv323udPointBufferI64_CreatePP16udPointBufferI648uint32_tP14udAttributeSet"></span><span id="_CPPv223udPointBufferI64_CreatePP16udPointBufferI648uint32_tP14udAttributeSet"></span><span id="udPointBufferI64_Create__udPointBufferI64PP.uint32_t.udAttributeSetP"></span><span class="target" id="ud_point_buffer_8h_1af7c1891cf89170f5ece3968db90cd5ec"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferI64_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferI64" title="udPointBufferI64">udPointBufferI64</a> **<em>ppBuffer</em>, uint32_t <em>maxPoints</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udPointBufferI64_CreatePP16udPointBufferI648uint32_tP14udAttributeSet" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a 64bit integer, point buffer object</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on creation status. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointBufferI64_Destroy</strong> with <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code> to destroy the point buffer object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_buffer_i64"><span class="std std-ref">udPointBufferI64</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_buffer_i64"><span class="std std-ref"><span class="pre">udPointBufferI64</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">maxPoints</span></code>: The maximum number of points that this buffer will contain (these are preallocated to avoid allocations later) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributes</span></code>: The pointer to the <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a> containing information on the attributes that will be available in this point buffer; NULL will have no attributes. An internal copy is made of this attribute set. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udPointBufferI64_DestroyPP16udPointBufferI64">
<span id="_CPPv324udPointBufferI64_DestroyPP16udPointBufferI64"></span><span id="_CPPv224udPointBufferI64_DestroyPP16udPointBufferI64"></span><span id="udPointBufferI64_Destroy__udPointBufferI64PP"></span><span class="target" id="ud_point_buffer_8h_1ae88ca4113028b7ea76e48676da23aa77"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferI64_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferI64" title="udPointBufferI64">udPointBufferI64</a> **<em>ppBuffer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udPointBufferI64_DestroyPP16udPointBufferI64" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the <a class="reference internal" href="#structud_point_buffer_i64"><span class="std std-ref">udPointBufferI64</span></a>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>: The pointer pointer of the ppBuffer. This will deallocate any memory used. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udPointBufferU64_CreatePP16udPointBufferU648uint32_tP14udAttributeSet">
<span id="_CPPv323udPointBufferU64_CreatePP16udPointBufferU648uint32_tP14udAttributeSet"></span><span id="_CPPv223udPointBufferU64_CreatePP16udPointBufferU648uint32_tP14udAttributeSet"></span><span id="udPointBufferU64_Create__udPointBufferU64PP.uint32_t.udAttributeSetP"></span><span class="target" id="ud_point_buffer_8h_1aeceda435e9c27ffa502ad02918d28fdb"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferU64_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferU64" title="udPointBufferU64">udPointBufferU64</a> **<em>ppBuffer</em>, uint32_t <em>maxPoints</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> *<em>pAttributes</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udPointBufferU64_CreatePP16udPointBufferU648uint32_tP14udAttributeSet" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a 64bit unsigned integer, point buffer object</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on creation status. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udPointBufferU64_Destroy</strong> with <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code> to destroy the point buffer object once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_point_buffer_u64"><span class="std std-ref">udPointBufferU64</span></a>. This will allocate an instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_point_buffer_u64"><span class="std std-ref"><span class="pre">udPointBufferU64</span></span></a></code> into <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">maxPoints</span></code>: The maximum number of points that this buffer will contain (these are preallocated to avoid allocations later) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAttributes</span></code>: The pointer to the <a class="reference internal" href="#structud_attribute_set"><span class="std std-ref">udAttributeSet</span></a> containing information on the attributes that will be available in this point buffer; NULL will have no attributes. An internal copy is made of this attribute set. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udPointBufferU64_DestroyPP16udPointBufferU64">
<span id="_CPPv324udPointBufferU64_DestroyPP16udPointBufferU64"></span><span id="_CPPv224udPointBufferU64_DestroyPP16udPointBufferU64"></span><span id="udPointBufferU64_Destroy__udPointBufferU64PP"></span><span class="target" id="ud_point_buffer_8h_1a0cf5c9c34ea9bee29319d01147492baa"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udPointBufferU64_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferU64" title="udPointBufferU64">udPointBufferU64</a> **<em>ppBuffer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udPointBufferU64_DestroyPP16udPointBufferU64" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the <a class="reference internal" href="#structud_point_buffer_u64"><span class="std std-ref">udPointBufferU64</span></a>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the destruction. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppBuffer</span></code>: The pointer pointer of the ppBuffer. This will deallocate any memory used. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv420udPointBufferIndices">
<span id="_CPPv320udPointBufferIndices"></span><span id="_CPPv220udPointBufferIndices"></span><span id="udPointBufferIndices"></span><span class="target" id="structud_point_buffer_indices"></span><em class="property">struct </em><code class="sig-name descname">udPointBufferIndices</code><a class="headerlink" href="#_CPPv420udPointBufferIndices" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointBuffer.h&gt;</em><p>Stores a set of indices to be used with a <strong>udPointBuffer</strong> </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N20udPointBufferIndices5countE">
<span id="_CPPv3N20udPointBufferIndices5countE"></span><span id="_CPPv2N20udPointBufferIndices5countE"></span><span id="udPointBufferIndices::count__uint32_t"></span><span class="target" id="structud_point_buffer_indices_1a8ce6f1d2009bdf80a83ed4a40eeb6064"></span>uint32_t <code class="sig-name descname">count</code><a class="headerlink" href="#_CPPv4N20udPointBufferIndices5countE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of indices currently contained in this object. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N20udPointBufferIndices8capacityE">
<span id="_CPPv3N20udPointBufferIndices8capacityE"></span><span id="_CPPv2N20udPointBufferIndices8capacityE"></span><span id="udPointBufferIndices::capacity__uint32_t"></span><span class="target" id="structud_point_buffer_indices_1a8466f13f8dcaa73f6da45dc1f82f2fb7"></span>uint32_t <code class="sig-name descname">capacity</code><a class="headerlink" href="#_CPPv4N20udPointBufferIndices8capacityE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of indices that can fit in this object. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N20udPointBufferIndices7indicesE">
<span id="_CPPv3N20udPointBufferIndices7indicesE"></span><span id="_CPPv2N20udPointBufferIndices7indicesE"></span><span id="udPointBufferIndices::indices__uint32_tA"></span><span class="target" id="structud_point_buffer_indices_1a430681d7a189d9445630845486c8a64d"></span>uint32_t <code class="sig-name descname">indices</code>[1]<a class="headerlink" href="#_CPPv4N20udPointBufferIndices7indicesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Array of indices, real length of the array is stored in capacity. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv416udPointBufferF64">
<span id="_CPPv316udPointBufferF64"></span><span id="_CPPv216udPointBufferF64"></span><span id="udPointBufferF64"></span><span class="target" id="structud_point_buffer_f64"></span><em class="property">struct </em><code class="sig-name descname">udPointBufferF64</code><a class="headerlink" href="#_CPPv416udPointBufferF64" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointBuffer.h&gt;</em><p>Stores a set of points and their attributes that have positions as double (64bit float) values </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udPointBufferF6410pPositionsE">
<span id="_CPPv3N16udPointBufferF6410pPositionsE"></span><span id="_CPPv2N16udPointBufferF6410pPositionsE"></span><span id="udPointBufferF64::pPositions__doubleP"></span><span class="target" id="structud_point_buffer_f64_1aef75884453959e2b70e817f66fc228c0"></span>double *<code class="sig-name descname">pPositions</code><a class="headerlink" href="#_CPPv4N16udPointBufferF6410pPositionsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Flat array of XYZ positions in the format XYZXYZXYZXYZXYZXYZXYZ… </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferF6411pAttributesE">
<span id="_CPPv3N16udPointBufferF6411pAttributesE"></span><span id="_CPPv2N16udPointBufferF6411pAttributesE"></span><span id="udPointBufferF64::pAttributes__uint8_tP"></span><span class="target" id="structud_point_buffer_f64_1a47f480b6b6912ddf8a3cf89c527882ef"></span>uint8_t *<code class="sig-name descname">pAttributes</code><a class="headerlink" href="#_CPPv4N16udPointBufferF6411pAttributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Byte array of attribute data ordered as specified in <code class="docutils literal notranslate"><span class="pre">attributes</span></code> </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferF6410attributesE">
<span id="_CPPv3N16udPointBufferF6410attributesE"></span><span id="_CPPv2N16udPointBufferF6410attributesE"></span><span id="udPointBufferF64::attributes__udAttributeSet"></span><span class="target" id="structud_point_buffer_f64_1a1c5843efc20d1ee0033cf946c4b5b72e"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> <code class="sig-name descname">attributes</code><a class="headerlink" href="#_CPPv4N16udPointBufferF6410attributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Information on the attributes that are available in this point buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferF6415attributeStrideE">
<span id="_CPPv3N16udPointBufferF6415attributeStrideE"></span><span id="_CPPv2N16udPointBufferF6415attributeStrideE"></span><span id="udPointBufferF64::attributeStride__uint32_t"></span><span class="target" id="structud_point_buffer_f64_1ab8038b2dfa8908f99eb20fd2ca58b0b4"></span>uint32_t <code class="sig-name descname">attributeStride</code><a class="headerlink" href="#_CPPv4N16udPointBufferF6415attributeStrideE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of bytes between the start of the attibutes of one point and the first byte of the next attribute. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferF6410pointCountE">
<span id="_CPPv3N16udPointBufferF6410pointCountE"></span><span id="_CPPv2N16udPointBufferF6410pointCountE"></span><span id="udPointBufferF64::pointCount__uint32_t"></span><span class="target" id="structud_point_buffer_f64_1a549aaf24e748f3e2143320e4417b5cd2"></span>uint32_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N16udPointBufferF6410pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many points are currently contained in this buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferF6415pointsAllocatedE">
<span id="_CPPv3N16udPointBufferF6415pointsAllocatedE"></span><span id="_CPPv2N16udPointBufferF6415pointsAllocatedE"></span><span id="udPointBufferF64::pointsAllocated__uint32_t"></span><span class="target" id="structud_point_buffer_f64_1ad5846ac858c811a68839d7194e28573a"></span>uint32_t <code class="sig-name descname">pointsAllocated</code><a class="headerlink" href="#_CPPv4N16udPointBufferF6415pointsAllocatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of points that can fit in this <a class="reference internal" href="#structud_point_buffer_f64"><span class="std std-ref">udPointBufferF64</span></a>. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferF649_reservedE">
<span id="_CPPv3N16udPointBufferF649_reservedE"></span><span id="_CPPv2N16udPointBufferF649_reservedE"></span><span id="udPointBufferF64::_reserved__uint32_t"></span><span class="target" id="structud_point_buffer_f64_1aaac10fbc96b87cb39d6a565a279b1b14"></span>uint32_t <code class="sig-name descname">_reserved</code><a class="headerlink" href="#_CPPv4N16udPointBufferF649_reservedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for internal use. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv416udPointBufferI64">
<span id="_CPPv316udPointBufferI64"></span><span id="_CPPv216udPointBufferI64"></span><span id="udPointBufferI64"></span><span class="target" id="structud_point_buffer_i64"></span><em class="property">struct </em><code class="sig-name descname">udPointBufferI64</code><a class="headerlink" href="#_CPPv416udPointBufferI64" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointBuffer.h&gt;</em><p>Stores a set of points and their attributes that have positions as Int64 values </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udPointBufferI6410pPositionsE">
<span id="_CPPv3N16udPointBufferI6410pPositionsE"></span><span id="_CPPv2N16udPointBufferI6410pPositionsE"></span><span id="udPointBufferI64::pPositions__int64_tP"></span><span class="target" id="structud_point_buffer_i64_1a47f077ccfe24a104672c89dde1fbafff"></span>int64_t *<code class="sig-name descname">pPositions</code><a class="headerlink" href="#_CPPv4N16udPointBufferI6410pPositionsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Flat array of XYZ positions in the format XYZXYZXYZXYZXYZXYZXYZ… </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferI6411pAttributesE">
<span id="_CPPv3N16udPointBufferI6411pAttributesE"></span><span id="_CPPv2N16udPointBufferI6411pAttributesE"></span><span id="udPointBufferI64::pAttributes__uint8_tP"></span><span class="target" id="structud_point_buffer_i64_1aa6c752f9885abd2bb983200475aa0f3f"></span>uint8_t *<code class="sig-name descname">pAttributes</code><a class="headerlink" href="#_CPPv4N16udPointBufferI6411pAttributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Byte array of attribute data ordered as specified in <code class="docutils literal notranslate"><span class="pre">attributes</span></code> </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferI6410attributesE">
<span id="_CPPv3N16udPointBufferI6410attributesE"></span><span id="_CPPv2N16udPointBufferI6410attributesE"></span><span id="udPointBufferI64::attributes__udAttributeSet"></span><span class="target" id="structud_point_buffer_i64_1a156b350d1997fb92625df96b326c5444"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> <code class="sig-name descname">attributes</code><a class="headerlink" href="#_CPPv4N16udPointBufferI6410attributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Information on the attributes that are available in this point buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferI6415attributeStrideE">
<span id="_CPPv3N16udPointBufferI6415attributeStrideE"></span><span id="_CPPv2N16udPointBufferI6415attributeStrideE"></span><span id="udPointBufferI64::attributeStride__uint32_t"></span><span class="target" id="structud_point_buffer_i64_1a9a7cfae0171d5799dc2383d5e5923692"></span>uint32_t <code class="sig-name descname">attributeStride</code><a class="headerlink" href="#_CPPv4N16udPointBufferI6415attributeStrideE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of bytes between the start of the attibutes of one point and the first byte of the next attribute. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferI6410pointCountE">
<span id="_CPPv3N16udPointBufferI6410pointCountE"></span><span id="_CPPv2N16udPointBufferI6410pointCountE"></span><span id="udPointBufferI64::pointCount__uint32_t"></span><span class="target" id="structud_point_buffer_i64_1af4c02ddf9d3f7e68b987fccc8caa2794"></span>uint32_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N16udPointBufferI6410pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many points are currently contained in this buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferI6415pointsAllocatedE">
<span id="_CPPv3N16udPointBufferI6415pointsAllocatedE"></span><span id="_CPPv2N16udPointBufferI6415pointsAllocatedE"></span><span id="udPointBufferI64::pointsAllocated__uint32_t"></span><span class="target" id="structud_point_buffer_i64_1a0014ddd5f4632c909668949fd51ee76c"></span>uint32_t <code class="sig-name descname">pointsAllocated</code><a class="headerlink" href="#_CPPv4N16udPointBufferI6415pointsAllocatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of points that can fit in this <a class="reference internal" href="#structud_point_buffer_f64"><span class="std std-ref">udPointBufferF64</span></a>. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferI649_reservedE">
<span id="_CPPv3N16udPointBufferI649_reservedE"></span><span id="_CPPv2N16udPointBufferI649_reservedE"></span><span id="udPointBufferI64::_reserved__uint32_t"></span><span class="target" id="structud_point_buffer_i64_1afa03771947f5775fc6b13e893ffb0e67"></span>uint32_t <code class="sig-name descname">_reserved</code><a class="headerlink" href="#_CPPv4N16udPointBufferI649_reservedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for internal use. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv416udPointBufferU64">
<span id="_CPPv316udPointBufferU64"></span><span id="_CPPv216udPointBufferU64"></span><span id="udPointBufferU64"></span><span class="target" id="structud_point_buffer_u64"></span><em class="property">struct </em><code class="sig-name descname">udPointBufferU64</code><a class="headerlink" href="#_CPPv416udPointBufferU64" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udPointBuffer.h&gt;</em><p>Stores a set of points and their attributes that have positions as UInt64 values </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udPointBufferU6410pPositionsE">
<span id="_CPPv3N16udPointBufferU6410pPositionsE"></span><span id="_CPPv2N16udPointBufferU6410pPositionsE"></span><span id="udPointBufferU64::pPositions__uint64_tP"></span><span class="target" id="structud_point_buffer_u64_1a9b2d2286f6bad2d2b5d6f3ad456da272"></span>uint64_t *<code class="sig-name descname">pPositions</code><a class="headerlink" href="#_CPPv4N16udPointBufferU6410pPositionsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Flat array of XYZ positions in the format XYZXYZXYZXYZXYZXYZXYZ… </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferU6411pAttributesE">
<span id="_CPPv3N16udPointBufferU6411pAttributesE"></span><span id="_CPPv2N16udPointBufferU6411pAttributesE"></span><span id="udPointBufferU64::pAttributes__uint8_tP"></span><span class="target" id="structud_point_buffer_u64_1a163eebe61cf6bc38858f3d01300cd51c"></span>uint8_t *<code class="sig-name descname">pAttributes</code><a class="headerlink" href="#_CPPv4N16udPointBufferU6411pAttributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Byte array of attribute data ordered as specified in <code class="docutils literal notranslate"><span class="pre">attributes</span></code> </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferU6410attributesE">
<span id="_CPPv3N16udPointBufferU6410attributesE"></span><span id="_CPPv2N16udPointBufferU6410attributesE"></span><span id="udPointBufferU64::attributes__udAttributeSet"></span><span class="target" id="structud_point_buffer_u64_1a2864da09c4727a7d3f126abc6682fa92"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udAttributeSet" title="udAttributeSet">udAttributeSet</a> <code class="sig-name descname">attributes</code><a class="headerlink" href="#_CPPv4N16udPointBufferU6410attributesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Information on the attributes that are available in this point buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferU6415attributeStrideE">
<span id="_CPPv3N16udPointBufferU6415attributeStrideE"></span><span id="_CPPv2N16udPointBufferU6415attributeStrideE"></span><span id="udPointBufferU64::attributeStride__uint32_t"></span><span class="target" id="structud_point_buffer_u64_1aba10fc772de57279cb3aa41569926e52"></span>uint32_t <code class="sig-name descname">attributeStride</code><a class="headerlink" href="#_CPPv4N16udPointBufferU6415attributeStrideE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of bytes between the start of the attibutes of one point and the first byte of the next attribute. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferU6410pointCountE">
<span id="_CPPv3N16udPointBufferU6410pointCountE"></span><span id="_CPPv2N16udPointBufferU6410pointCountE"></span><span id="udPointBufferU64::pointCount__uint32_t"></span><span class="target" id="structud_point_buffer_u64_1acf4d58b48e7708f2d7d6fa2945e79a22"></span>uint32_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N16udPointBufferU6410pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many points are currently contained in this buffer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferU6415pointsAllocatedE">
<span id="_CPPv3N16udPointBufferU6415pointsAllocatedE"></span><span id="_CPPv2N16udPointBufferU6415pointsAllocatedE"></span><span id="udPointBufferU64::pointsAllocated__uint32_t"></span><span class="target" id="structud_point_buffer_u64_1a4a96b67284becaf60cedf48bd4afded1"></span>uint32_t <code class="sig-name descname">pointsAllocated</code><a class="headerlink" href="#_CPPv4N16udPointBufferU6415pointsAllocatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of points that can fit in this <a class="reference internal" href="#structud_point_buffer_f64"><span class="std std-ref">udPointBufferF64</span></a>. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udPointBufferU649_reservedE">
<span id="_CPPv3N16udPointBufferU649_reservedE"></span><span id="_CPPv2N16udPointBufferU649_reservedE"></span><span id="udPointBufferU64::_reserved__uint32_t"></span><span class="target" id="structud_point_buffer_u64_1a27df63884855215a2f02633a1d2bb187"></span>uint32_t <code class="sig-name descname">_reserved</code><a class="headerlink" href="#_CPPv4N16udPointBufferU649_reservedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for internal use. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="udgeometry">
<h3>udGeometry<a class="headerlink" href="#udgeometry" title="Permalink to this headline">¶</a></h3>
<p>The <strong><a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a></strong> object provides an interface to filter Euclideon Unlimited Detail models using geometric filters. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Typedefs</p>
<dl class="type">
<dt id="_CPPv417udGeometryDouble2">
<span id="_CPPv317udGeometryDouble2"></span><span id="_CPPv217udGeometryDouble2"></span><span id="udGeometryDouble2"></span><span class="target" id="ud_geometry_8h_1ae33943c39b259126b3aaf0f26167ecd1"></span><em class="property">typedef </em><code class="sig-name descname">udGeometryDouble2</code><a class="headerlink" href="#_CPPv417udGeometryDouble2" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 2D geometric vector with double precision </p>
</dd></dl>

<dl class="type">
<dt id="_CPPv417udGeometryDouble3">
<span id="_CPPv317udGeometryDouble3"></span><span id="_CPPv217udGeometryDouble3"></span><span id="udGeometryDouble3"></span><span class="target" id="ud_geometry_8h_1ac5c27cbe519de77c0ddbe5556b072b7f"></span><em class="property">typedef </em><code class="sig-name descname">udGeometryDouble3</code><a class="headerlink" href="#_CPPv417udGeometryDouble3" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 3D geometric vector with double precision </p>
</dd></dl>

<dl class="type">
<dt id="_CPPv417udGeometryDouble4">
<span id="_CPPv317udGeometryDouble4"></span><span id="_CPPv217udGeometryDouble4"></span><span id="udGeometryDouble4"></span><span class="target" id="ud_geometry_8h_1a4179d2d5ab7c18b53749633fd4036508"></span><em class="property">typedef </em><code class="sig-name descname">udGeometryDouble4</code><a class="headerlink" href="#_CPPv417udGeometryDouble4" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 4D geometric vector, or 3D vector for homogeneous coordinates with double precision </p>
</dd></dl>

<dl class="type">
<dt id="_CPPv419udGeometryDouble4x4">
<span id="_CPPv319udGeometryDouble4x4"></span><span id="_CPPv219udGeometryDouble4x4"></span><span id="udGeometryDouble4x4"></span><span class="target" id="ud_geometry_8h_1a52751cd70e4adcdafa91e134414e6fc6"></span><em class="property">typedef </em><code class="sig-name descname">udGeometryDouble4x4</code><a class="headerlink" href="#_CPPv419udGeometryDouble4x4" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 4x4 geometric matrix with double precision </p>
</dd></dl>

<dl class="type">
<dt id="_CPPv413udGeometryCrc">
<span id="_CPPv313udGeometryCrc"></span><span id="_CPPv213udGeometryCrc"></span><span id="udGeometryCrc"></span><span class="target" id="ud_geometry_8h_1a93f414e52bbb3e513b6e64311ffb8b55"></span><em class="property">typedef </em>uint32_t <code class="sig-name descname">udGeometryCrc</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv413udGeometryCrc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional function to return a crc of ADDITIONAL data outside the structure, such as pointers in a CSG/Inverse type etc. </p>
</dd></dl>

<dl class="type">
<dt id="_CPPv416udGeometryDeinit">
<span id="_CPPv316udGeometryDeinit"></span><span id="_CPPv216udGeometryDeinit"></span><span id="udGeometryDeinit"></span><span class="target" id="ud_geometry_8h_1abccb56c1010981a59acbd724c9215b5e"></span><em class="property">typedef </em>void <code class="sig-name descname">udGeometryDeinit</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416udGeometryDeinit" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This sets up pFilterOut by doing the pMatrix transform on pFilterIn (which isn’t modified)- pFilterOut needs to be deinited after this. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv414udGeometryType">
<span id="_CPPv314udGeometryType"></span><span id="_CPPv214udGeometryType"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876"></span><em class="property">enum </em><code class="sig-name descname">udGeometryType</code><a class="headerlink" href="#_CPPv414udGeometryType" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The currently supported geometry types </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv412udGT_Inverse">
<span id="_CPPv312udGT_Inverse"></span><span id="_CPPv212udGT_Inverse"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876abfdd94ef62ac72b4709435f725a3a2e3"></span><code class="sig-name descname">udGT_Inverse</code><a class="headerlink" href="#_CPPv412udGT_Inverse" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An inversion filter; flips the udGeometryTestResult of the child <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> node. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udGT_CircleXY">
<span id="_CPPv313udGT_CircleXY"></span><span id="_CPPv213udGT_CircleXY"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a04f21a14f015433257f5d0788ed70624"></span><code class="sig-name descname">udGT_CircleXY</code><a class="headerlink" href="#_CPPv413udGT_CircleXY" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 2D Circle with an infinite Z value. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udGT_RectangleXY">
<span id="_CPPv316udGT_RectangleXY"></span><span id="_CPPv216udGT_RectangleXY"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a9417eb10c8330d14537e80c4bc3bb016"></span><code class="sig-name descname">udGT_RectangleXY</code><a class="headerlink" href="#_CPPv416udGT_RectangleXY" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 2D Rectangle with an infinite Z value. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udGT_PolygonXY">
<span id="_CPPv314udGT_PolygonXY"></span><span id="_CPPv214udGT_PolygonXY"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a4a77e5b6edb6e891c1217fba9cf63d07"></span><code class="sig-name descname">udGT_PolygonXY</code><a class="headerlink" href="#_CPPv414udGT_PolygonXY" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 2D Polygon with rotation (quaternion) to define the up of the polygon. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv423udGT_PolygonPerspective">
<span id="_CPPv323udGT_PolygonPerspective"></span><span id="_CPPv223udGT_PolygonPerspective"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876ade98199ff9758196eecd308877be836e"></span><code class="sig-name descname">udGT_PolygonPerspective</code><a class="headerlink" href="#_CPPv423udGT_PolygonPerspective" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A 2D polygon with a perspective projection to the screen plane. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udGT_Capsule">
<span id="_CPPv312udGT_Capsule"></span><span id="_CPPv212udGT_Capsule"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a622e7cb71032e01eadcdbd6f0fb5a08e"></span><code class="sig-name descname">udGT_Capsule</code><a class="headerlink" href="#_CPPv412udGT_Capsule" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A line with a radius from the line; forming hemispherical caps at the end of the line. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udGT_Sphere">
<span id="_CPPv311udGT_Sphere"></span><span id="_CPPv211udGT_Sphere"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a0293d29ded4a7cd2a442a7fefd35df73"></span><code class="sig-name descname">udGT_Sphere</code><a class="headerlink" href="#_CPPv411udGT_Sphere" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A radius from a point. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udGT_HalfSpace">
<span id="_CPPv314udGT_HalfSpace"></span><span id="_CPPv214udGT_HalfSpace"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a6324ee5921433bceaeda89998d4d12a9"></span><code class="sig-name descname">udGT_HalfSpace</code><a class="headerlink" href="#_CPPv414udGT_HalfSpace" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A binary space partition allowing 1 side of a plane. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udGT_AABB">
<span id="_CPPv39udGT_AABB"></span><span id="_CPPv29udGT_AABB"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a32be2db4e7f1a2f3626588762b88a7b7"></span><code class="sig-name descname">udGT_AABB</code><a class="headerlink" href="#_CPPv49udGT_AABB" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An axis aligned box; Use with caution. OBB while less performant correctly handles transforms. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv48udGT_OBB">
<span id="_CPPv38udGT_OBB"></span><span id="_CPPv28udGT_OBB"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a14ddf4f37182e34ae66eb37f5899506c"></span><code class="sig-name descname">udGT_OBB</code><a class="headerlink" href="#_CPPv48udGT_OBB" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An oriented bounding box using half size and orientation. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv48udGT_CSG">
<span id="_CPPv38udGT_CSG"></span><span id="_CPPv28udGT_CSG"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a0b8f63b8028ca3353b3671d118b38bab"></span><code class="sig-name descname">udGT_CSG</code><a class="headerlink" href="#_CPPv48udGT_CSG" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A constructed solid geometry that uses a udGeometryCSGOperation to join to child <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> nodes. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udGT_Attribute">
<span id="_CPPv314udGT_Attribute"></span><span id="_CPPv214udGT_Attribute"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876a52ff068cfea96b6c8aa150d84aebf3a5"></span><code class="sig-name descname">udGT_Attribute</code><a class="headerlink" href="#_CPPv414udGT_Attribute" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Filter based on attribute values (automatic pass if no attribute information passed to test function) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udGT_Count">
<span id="_CPPv310udGT_Count"></span><span id="_CPPv210udGT_Count"></span><span class="target" id="ud_geometry_8h_1ab5e9a256b40aa44d74bf4e8524f5a876aae3694535551ca027cdfd8f95949d85a"></span><code class="sig-name descname">udGT_Count</code><a class="headerlink" href="#_CPPv410udGT_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Count helper value to iterate this enum. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv422udGeometryCSGOperation">
<span id="_CPPv322udGeometryCSGOperation"></span><span id="_CPPv222udGeometryCSGOperation"></span><span class="target" id="ud_geometry_8h_1a5ac5d9c76e6436edac2fe30b439e12d1"></span><em class="property">enum </em><code class="sig-name descname">udGeometryCSGOperation</code><a class="headerlink" href="#_CPPv422udGeometryCSGOperation" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The Constructive Solid Geometry operations </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv413udGCSGO_Union">
<span id="_CPPv313udGCSGO_Union"></span><span id="_CPPv213udGCSGO_Union"></span><span class="target" id="ud_geometry_8h_1a5ac5d9c76e6436edac2fe30b439e12d1a2fda7209bb8d3221acdda6864dd4d45c"></span><code class="sig-name descname">udGCSGO_Union</code> = 0<a class="headerlink" href="#_CPPv413udGCSGO_Union" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A union CSG operation; any point matching the one or the other geometry (OR operation) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udGCSGO_Difference">
<span id="_CPPv318udGCSGO_Difference"></span><span id="_CPPv218udGCSGO_Difference"></span><span class="target" id="ud_geometry_8h_1a5ac5d9c76e6436edac2fe30b439e12d1a405d174cb31c71cac9c766881e76e976"></span><code class="sig-name descname">udGCSGO_Difference</code><a class="headerlink" href="#_CPPv418udGCSGO_Difference" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A subtractive CSG operation; any point in the first geometry but not matching the second geometry (XOR operation) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udGCSGO_Intersection">
<span id="_CPPv320udGCSGO_Intersection"></span><span id="_CPPv220udGCSGO_Intersection"></span><span class="target" id="ud_geometry_8h_1a5ac5d9c76e6436edac2fe30b439e12d1ae2121b43dc74f415e66a4a8da9ea0480"></span><code class="sig-name descname">udGCSGO_Intersection</code><a class="headerlink" href="#_CPPv420udGCSGO_Intersection" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An intersection CSG operation; any point that matches both geometries (AND operation) </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv420udGeometryTestResult">
<span id="_CPPv320udGeometryTestResult"></span><span id="_CPPv220udGeometryTestResult"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0d"></span><em class="property">enum </em><code class="sig-name descname">udGeometryTestResult</code><a class="headerlink" href="#_CPPv420udGeometryTestResult" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The results of a geometry test </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv412udGTR_Reject">
<span id="_CPPv312udGTR_Reject"></span><span id="_CPPv212udGTR_Reject"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0daff3e8b703e7d03552f285c7607f5f885"></span><code class="sig-name descname">udGTR_Reject</code> = 0<a class="headerlink" href="#_CPPv412udGTR_Reject" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The node is either totally outside of the geometry filter OR fails attribute filter. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udGTR_Accept">
<span id="_CPPv312udGTR_Accept"></span><span id="_CPPv212udGTR_Accept"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0da9826d53ce8a5012e0fe45c55f78fb43b"></span><code class="sig-name descname">udGTR_Accept</code> = 1<a class="headerlink" href="#_CPPv412udGTR_Accept" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The node is both totally inside of the geometry AND fully matches attribute filter (and no further tests are required) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udGTR_Partial">
<span id="_CPPv313udGTR_Partial"></span><span id="_CPPv213udGTR_Partial"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0dacdc6bea6a0bb446f4cb19123066a7a0d"></span><code class="sig-name descname">udGTR_Partial</code> = 2<a class="headerlink" href="#_CPPv413udGTR_Partial" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The node is partiall filtered, should be accepted but child nodes must be re-tested (eg overlapping the boundary of the geometry) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv423udGTR_CompletelyOutside">
<span id="_CPPv323udGTR_CompletelyOutside"></span><span id="_CPPv223udGTR_CompletelyOutside"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0da23e46c836615c64f199c192bb5bec44f"></span><code class="sig-name descname">udGTR_CompletelyOutside</code> = <a class="reference internal" href="#_CPPv412udGTR_Reject" title="udGTR_Reject">udGTR_Reject</a><a class="headerlink" href="#_CPPv423udGTR_CompletelyOutside" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv422udGTR_CompletelyInside">
<span id="_CPPv322udGTR_CompletelyInside"></span><span id="_CPPv222udGTR_CompletelyInside"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0da4b148d150e88b60ec2edc9a69e646d41"></span><code class="sig-name descname">udGTR_CompletelyInside</code> = <a class="reference internal" href="#_CPPv412udGTR_Accept" title="udGTR_Accept">udGTR_Accept</a><a class="headerlink" href="#_CPPv422udGTR_CompletelyInside" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="enumerator">
<dt id="_CPPv422udGTR_PartiallyOverlap">
<span id="_CPPv322udGTR_PartiallyOverlap"></span><span id="_CPPv222udGTR_PartiallyOverlap"></span><span class="target" id="ud_geometry_8h_1a31609a9ea6c36812d9a7b0c358490f0daf5c435b2adf9ad72b7723133e2644a67"></span><code class="sig-name descname">udGTR_PartiallyOverlap</code> = <a class="reference internal" href="#_CPPv413udGTR_Partial" title="udGTR_Partial">udGTR_Partial</a><a class="headerlink" href="#_CPPv422udGTR_PartiallyOverlap" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv418udGeometryTestFuncPK10udGeometryPK19udGeometryVoxelNode">
<span id="_CPPv318udGeometryTestFuncPK10udGeometryPK19udGeometryVoxelNode"></span><span id="_CPPv218udGeometryTestFuncPK10udGeometryPK19udGeometryVoxelNode"></span><span id="udGeometryTestFunc__udGeometryCP.udGeometryVoxelNodeCP"></span><span class="target" id="ud_geometry_8h_1a61a572887eb4b2a4a6f5a752f311b984"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv420udGeometryTestResult" title="udGeometryTestResult">udGeometryTestResult</a> <code class="sig-name descname">udGeometryTestFunc</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv419udGeometryVoxelNode" title="udGeometryVoxelNode">udGeometryVoxelNode</a> *<em>pVoxel</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udGeometryTestFuncPK10udGeometryPK19udGeometryVoxelNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The function that will be called for each node until the node is either inside or outside of the geometry. </p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udGeometryTransformPK10udGeometryP10udGeometryPK19udGeometryDouble4x4">
<span id="_CPPv319udGeometryTransformPK10udGeometryP10udGeometryPK19udGeometryDouble4x4"></span><span id="_CPPv219udGeometryTransformPK10udGeometryP10udGeometryPK19udGeometryDouble4x4"></span><span id="udGeometryTransform__udGeometryCP.udGeometryP.udGeometryDouble4x4CP"></span><span class="target" id="ud_geometry_8h_1a0f8f3af466a2708a92229ca7d7207825"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometryTransform</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pFilterIn</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pFilterOut</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> *<em>pMatrix</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udGeometryTransformPK10udGeometryP10udGeometryPK19udGeometryDouble4x4" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This sets up pFilterOut by doing the pMatrix transform on pFilterIn (which isn’t modified)- pFilterOut needs to be deinited after this. </p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udGeometry_InitInverseP10udGeometryPK10udGeometry">
<span id="_CPPv322udGeometry_InitInverseP10udGeometryPK10udGeometry"></span><span id="_CPPv222udGeometry_InitInverseP10udGeometryPK10udGeometry"></span><span id="udGeometry_InitInverse__udGeometryP.udGeometryCP"></span><span class="target" id="ud_geometry_8h_1aef909fa8e82f6c49abd8fc2cf213e219"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitInverse</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pSource</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udGeometry_InitInverseP10udGeometryPK10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a geometry that simply inverts another primitive (CompletelyOutside &lt;-&gt; CompletelyInside) <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSource</span></code>: The Geometry to inverse </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udGeometry_InitCircleXYP10udGeometryK17udGeometryDouble2d">
<span id="_CPPv323udGeometry_InitCircleXYP10udGeometryK17udGeometryDouble2d"></span><span id="_CPPv223udGeometry_InitCircleXYP10udGeometryK17udGeometryDouble2d"></span><span id="udGeometry_InitCircleXY__udGeometryP.udGeometryDouble2C.double"></span><span class="target" id="ud_geometry_8h_1af0e091499a9ac2f0964a75a6694033f4"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitCircleXY</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> <em>centre</em>, double <em>radius</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udGeometry_InitCircleXYP10udGeometryK17udGeometryDouble2d" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a 2D circle extended to infinity in Z (elevation) <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">centre</span></code>: THe centre fo the Circle </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">radius</span></code>: The radius of the circle </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udGeometry_InitRectangleXYP10udGeometryK17udGeometryDouble2K17udGeometryDouble2">
<span id="_CPPv326udGeometry_InitRectangleXYP10udGeometryK17udGeometryDouble2K17udGeometryDouble2"></span><span id="_CPPv226udGeometry_InitRectangleXYP10udGeometryK17udGeometryDouble2K17udGeometryDouble2"></span><span id="udGeometry_InitRectangleXY__udGeometryP.udGeometryDouble2C.udGeometryDouble2C"></span><span class="target" id="ud_geometry_8h_1ad0bf4bedf8547889d8995ddb68aed5ff"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitRectangleXY</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> <em>point1</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> <em>point2</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udGeometry_InitRectangleXYP10udGeometryK17udGeometryDouble2K17udGeometryDouble2" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a 2D rectangle extended to infinity in Z (elevation) <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point1</span></code>: The first point to define a rectangle </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point2</span></code>: The second point to define a rectangle </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udGeometry_InitPolygonXYP10udGeometryPK17udGeometryDouble38uint32_tK17udGeometryDouble4">
<span id="_CPPv324udGeometry_InitPolygonXYP10udGeometryPK17udGeometryDouble38uint32_tK17udGeometryDouble4"></span><span id="_CPPv224udGeometry_InitPolygonXYP10udGeometryPK17udGeometryDouble38uint32_tK17udGeometryDouble4"></span><span id="udGeometry_InitPolygonXY__udGeometryP.udGeometryDouble3CP.uint32_t.udGeometryDouble4C"></span><span class="target" id="ud_geometry_8h_1a37331130977905ff46eefd5f7b9a8e85"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitPolygonXY</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> *<em>pXYCoords</em>, uint32_t <em>count</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble4" title="udGeometryDouble4">udGeometryDouble4</a> <em>rotationQuat</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udGeometry_InitPolygonXYP10udGeometryPK17udGeometryDouble38uint32_tK17udGeometryDouble4" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a Polygon shape extened to infinity along a direction <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pXYCoords</span></code>: the list of 2D positions defining the polygon </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">count</span></code>: the number of points in pXYCoords list </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">rotationQuat</span></code>: The rotation quaternion between Up and the direction of the polygon </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv433udGeometry_InitPolygonPerspectiveP10udGeometryPK17udGeometryDouble28uint32_t19udGeometryDouble4x419udGeometryDouble4x4dd">
<span id="_CPPv333udGeometry_InitPolygonPerspectiveP10udGeometryPK17udGeometryDouble28uint32_t19udGeometryDouble4x419udGeometryDouble4x4dd"></span><span id="_CPPv233udGeometry_InitPolygonPerspectiveP10udGeometryPK17udGeometryDouble28uint32_t19udGeometryDouble4x419udGeometryDouble4x4dd"></span><span id="udGeometry_InitPolygonPerspective__udGeometryP.udGeometryDouble2CP.uint32_t.udGeometryDouble4x4.udGeometryDouble4x4.double.double"></span><span class="target" id="ud_geometry_8h_1a7992162a732f083fd3316b72ff863b04"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitPolygonPerspective</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> *<em>pXYCoords</em>, uint32_t <em>count</em>, <a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> <em>projectionMatrix</em>, <a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> <em>cameraMatrix</em>, double <em>nearPlaneOffset</em>, double <em>farPlaneOffset</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433udGeometry_InitPolygonPerspectiveP10udGeometryPK17udGeometryDouble28uint32_t19udGeometryDouble4x419udGeometryDouble4x4dd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a Polygon shape extended to infinity with a perspective projection <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pXYCoords</span></code>: the list of 2D positions defining the polygon </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">count</span></code>: the number of points in pXYCoords list </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">projectionMatrix</span></code>: The projection matrix of model to world </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">cameraMatrix</span></code>: The projection matrix of world to screen </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">nearPlaneOffset</span></code>: The offset off the near plane to detect if voxel is visible by the camera </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">farPlaneOffset</span></code>: The offset off the far plane to detect if voxel is visible by the camera </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv418udGeometry_InitCSGP10udGeometryPK10udGeometryPK10udGeometry22udGeometryCSGOperation">
<span id="_CPPv318udGeometry_InitCSGP10udGeometryPK10udGeometryPK10udGeometry22udGeometryCSGOperation"></span><span id="_CPPv218udGeometry_InitCSGP10udGeometryPK10udGeometryPK10udGeometry22udGeometryCSGOperation"></span><span id="udGeometry_InitCSG__udGeometryP.udGeometryCP.udGeometryCP.udGeometryCSGOperation"></span><span class="target" id="ud_geometry_8h_1a8bece8e9e3a2d3ba1a23d1cfea4fdf60"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitCSG</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry1</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry2</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv422udGeometryCSGOperation" title="udGeometryCSGOperation">udGeometryCSGOperation</a> <em>function</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udGeometry_InitCSGP10udGeometryPK10udGeometryPK10udGeometry22udGeometryCSGOperation" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a CSG shape <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry1</span></code>: First Geometry </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry2</span></code>: Second Geometry </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">function</span></code>: the function to apply to these 2 geometries (Union, Difference, Intersection) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv424udGeometry_InitHalfSpaceP10udGeometryK17udGeometryDouble3K17udGeometryDouble3">
<span id="_CPPv324udGeometry_InitHalfSpaceP10udGeometryK17udGeometryDouble3K17udGeometryDouble3"></span><span id="_CPPv224udGeometry_InitHalfSpaceP10udGeometryK17udGeometryDouble3K17udGeometryDouble3"></span><span id="udGeometry_InitHalfSpace__udGeometryP.udGeometryDouble3C.udGeometryDouble3C"></span><span class="target" id="ud_geometry_8h_1a6f9a3e6126c7d4b7146fc44707571f8f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitHalfSpace</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>point</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>normal</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424udGeometry_InitHalfSpaceP10udGeometryK17udGeometryDouble3K17udGeometryDouble3" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a plane extended to infinity in the direction of its normal <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point</span></code>: The first point to define the space </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">normal</span></code>: The normal vector of the defined space </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udGeometry_InitCapsuleP10udGeometryK17udGeometryDouble3K17udGeometryDouble3d">
<span id="_CPPv322udGeometry_InitCapsuleP10udGeometryK17udGeometryDouble3K17udGeometryDouble3d"></span><span id="_CPPv222udGeometry_InitCapsuleP10udGeometryK17udGeometryDouble3K17udGeometryDouble3d"></span><span id="udGeometry_InitCapsule__udGeometryP.udGeometryDouble3C.udGeometryDouble3C.double"></span><span class="target" id="ud_geometry_8h_1a018fdc1d42aceb8f394069b75d03fd1e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitCapsule</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>point1</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>point2</em>, double <em>radius</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udGeometry_InitCapsuleP10udGeometryK17udGeometryDouble3K17udGeometryDouble3d" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a Capsule <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point1</span></code>: First point to define a capsule at this position </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point2</span></code>: Second point to define a capsule </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">radius</span></code>: Radius of the capsule </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udGeometry_InitSphereP10udGeometryK17udGeometryDouble3d">
<span id="_CPPv321udGeometry_InitSphereP10udGeometryK17udGeometryDouble3d"></span><span id="_CPPv221udGeometry_InitSphereP10udGeometryK17udGeometryDouble3d"></span><span id="udGeometry_InitSphere__udGeometryP.udGeometryDouble3C.double"></span><span class="target" id="ud_geometry_8h_1a1b6e4123bd79a56fcfc1d50a7c8ec3e0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitSphere</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>center</em>, double <em>radius</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udGeometry_InitSphereP10udGeometryK17udGeometryDouble3d" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise a Sphere <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">center</span></code>: The center of the Sphere </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">radius</span></code>: The radius of the sphere </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udGeometry_InitAABBFromMinMaxP10udGeometryK17udGeometryDouble3K17udGeometryDouble3">
<span id="_CPPv329udGeometry_InitAABBFromMinMaxP10udGeometryK17udGeometryDouble3K17udGeometryDouble3"></span><span id="_CPPv229udGeometry_InitAABBFromMinMaxP10udGeometryK17udGeometryDouble3K17udGeometryDouble3"></span><span id="udGeometry_InitAABBFromMinMax__udGeometryP.udGeometryDouble3C.udGeometryDouble3C"></span><span class="target" id="ud_geometry_8h_1afff908eb76dd7a24261bbf0210523716"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitAABBFromMinMax</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>point1</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>point2</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udGeometry_InitAABBFromMinMaxP10udGeometryK17udGeometryDouble3K17udGeometryDouble3" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise an Axis Aligned Box using the min and max point <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point1</span></code>: First point to define a box starting at this position </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">point2</span></code>: Last point to define a box ending at this position </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv436udGeometry_InitAABBFromCentreExtentsP10udGeometryK17udGeometryDouble3K17udGeometryDouble3">
<span id="_CPPv336udGeometry_InitAABBFromCentreExtentsP10udGeometryK17udGeometryDouble3K17udGeometryDouble3"></span><span id="_CPPv236udGeometry_InitAABBFromCentreExtentsP10udGeometryK17udGeometryDouble3K17udGeometryDouble3"></span><span id="udGeometry_InitAABBFromCentreExtents__udGeometryP.udGeometryDouble3C.udGeometryDouble3C"></span><span class="target" id="ud_geometry_8h_1acc96bc82e83397b952df488316133ea0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitAABBFromCentreExtents</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>centre</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>extents</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv436udGeometry_InitAABBFromCentreExtentsP10udGeometryK17udGeometryDouble3K17udGeometryDouble3" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise an Axis Aligned Box using center and extents <dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">centre</span></code>: The centre of the Axis Aligned Box </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">extents</span></code>: The dimension of the Axis Aligned Box </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv418udGeometry_InitOBBP10udGeometryK17udGeometryDouble3K17udGeometryDouble3K17udGeometryDouble3">
<span id="_CPPv318udGeometry_InitOBBP10udGeometryK17udGeometryDouble3K17udGeometryDouble3K17udGeometryDouble3"></span><span id="_CPPv218udGeometry_InitOBBP10udGeometryK17udGeometryDouble3K17udGeometryDouble3K17udGeometryDouble3"></span><span id="udGeometry_InitOBB__udGeometryP.udGeometryDouble3C.udGeometryDouble3C.udGeometryDouble3C"></span><span class="target" id="ud_geometry_8h_1af0669c741568b7e7cd6ff9134027c177"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitOBB</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>centerPoint</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>extents</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <em>rotations</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udGeometry_InitOBBP10udGeometryK17udGeometryDouble3K17udGeometryDouble3K17udGeometryDouble3" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise an arbitrarily aligned three dimensional box, centered at centerPoint, rotated about the center</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">centerPoint</span></code>: The centre of the box </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">extents</span></code>: The distances from the center to the sides (half the size of the dimensions of the box) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">rotations</span></code>: The rotations of the box in radians about x,y,z </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udGeometry_InitAttributeEqIntP10udGeometry14udStdAttribute7int64_t">
<span id="_CPPv329udGeometry_InitAttributeEqIntP10udGeometry14udStdAttribute7int64_t"></span><span id="_CPPv229udGeometry_InitAttributeEqIntP10udGeometry14udStdAttribute7int64_t"></span><span id="udGeometry_InitAttributeEqInt__udGeometryP.udStdAttribute.int64_t"></span><span class="target" id="ud_geometry_8h_1a424493e6e0d65d4225e3295a92eb12aa"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_InitAttributeEqInt</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv414udStdAttribute" title="udStdAttribute">udStdAttribute</a> <em>attr</em>, int64_t <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udGeometry_InitAttributeEqIntP10udGeometry14udStdAttribute7int64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to initialise an attribute equality filter, testing the attribute for equality with integer based comparitors</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: The preallocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> to init </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">attr</span></code>: Attribute from standard attribute set </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">value</span></code>: Value to compare node’s attribute with (integer version) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udGeometry_DeinitP10udGeometry">
<span id="_CPPv317udGeometry_DeinitP10udGeometry"></span><span id="_CPPv217udGeometry_DeinitP10udGeometry"></span><span id="udGeometry_Deinit__udGeometryP"></span><span class="target" id="ud_geometry_8h_1ad9f6cef560cc1d51f1f4a3e76b641ea0"></span>void <code class="sig-name descname">udGeometry_Deinit</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udGeometry_DeinitP10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This cleans up internal allocations </p>
</dd></dl>

<dl class="function">
<dt id="_CPPv414udGeometry_CRCPK10udGeometry">
<span id="_CPPv314udGeometry_CRCPK10udGeometry"></span><span id="_CPPv214udGeometry_CRCPK10udGeometry"></span><span id="udGeometry_CRC__udGeometryCP"></span><span class="target" id="ud_geometry_8h_1a8128ba8af9a9556bacfce3e1154bfb91"></span>uint32_t <code class="sig-name descname">udGeometry_CRC</code><span class="sig-paren">(</span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pGeometry</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414udGeometry_CRCPK10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return a crc of the geometry (and sub-geometry in the case of CSG etc)</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>Crc {number} of the geometry, zero if pGeometry is passed as null </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pGeometry</span></code>: Pointer to geometry </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv417udGeometry_CreatePP10udGeometry">
<span id="_CPPv317udGeometry_CreatePP10udGeometry"></span><span id="_CPPv217udGeometry_CreatePP10udGeometry"></span><span id="udGeometry_Create__udGeometryPP"></span><span class="target" id="ud_geometry_8h_1a482ecae7b23942836023110e4f5dc5db"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeometry_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> **<em>ppGeometry</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udGeometry_CreatePP10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Helper to create a pointer to an allocated <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> struct. This is a conveneince for wrapping libraries that do not need or have a concept of the underlying object It is NOT recommended to use this function in applications where creating a <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> struct directly is possible (either using an allocation or on stack)</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppGeometry</span></code>: Pointer to memory location with which to return the allocated struct </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv418udGeometry_DestroyPP10udGeometry">
<span id="_CPPv318udGeometry_DestroyPP10udGeometry"></span><span id="_CPPv218udGeometry_DestroyPP10udGeometry"></span><span id="udGeometry_Destroy__udGeometryPP"></span><span class="target" id="ud_geometry_8h_1a5228764e367d4fff3ba7445b6fcc567e"></span>void <code class="sig-name descname">udGeometry_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> **<em>ppGeometry</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udGeometry_DestroyPP10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Free the struct allocated by udGeometry_Create udGeometry_DeInit should be called on the struct first before calling this function. Calling this function on a <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> struct that was not allocated using udGeometry_Create may result in a crash</p>
<p><dl class="simple">
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppGeometry</span></code>: Pointer to memory location of struct to free </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv419udGeometryVoxelNode">
<span id="_CPPv319udGeometryVoxelNode"></span><span id="_CPPv219udGeometryVoxelNode"></span><span id="udGeometryVoxelNode"></span><span class="target" id="structud_geometry_voxel_node"></span><em class="property">struct </em><code class="sig-name descname">udGeometryVoxelNode</code><a class="headerlink" href="#_CPPv419udGeometryVoxelNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>The geometric representation of a Node in a Unlimited Detail Model. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udGeometryVoxelNode6minPosE">
<span id="_CPPv3N19udGeometryVoxelNode6minPosE"></span><span id="_CPPv2N19udGeometryVoxelNode6minPosE"></span><span id="udGeometryVoxelNode::minPos__udGeometryDouble3"></span><span class="target" id="structud_geometry_voxel_node_1ac88a05fffac267ed726132fd3a794dbf"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">minPos</code><a class="headerlink" href="#_CPPv4N19udGeometryVoxelNode6minPosE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The Bottom, Left, Front corner of the voxel (closest to the origin) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udGeometryVoxelNode9childSizeE">
<span id="_CPPv3N19udGeometryVoxelNode9childSizeE"></span><span id="_CPPv2N19udGeometryVoxelNode9childSizeE"></span><span id="udGeometryVoxelNode::childSize__double"></span><span class="target" id="structud_geometry_voxel_node_1ad29916366f7bcd999cf2b8bd41ec8c49"></span>double <code class="sig-name descname">childSize</code><a class="headerlink" href="#_CPPv4N19udGeometryVoxelNode9childSizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The half size of the voxel (which is the same size as this voxels children) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udGeometryVoxelNode5pNodeE">
<span id="_CPPv3N19udGeometryVoxelNode5pNodeE"></span><span id="_CPPv2N19udGeometryVoxelNode5pNodeE"></span><span id="udGeometryVoxelNode::pNode__udNodeP"></span><span class="target" id="structud_geometry_voxel_node_1ab621c487b511e101278e91f421f61073"></span><em class="property">struct</em> udNode *<code class="sig-name descname">pNode</code><a class="headerlink" href="#_CPPv4N19udGeometryVoxelNode5pNodeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional pointer to the node for testing attributes. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udGeometryVoxelNode10childDepthE">
<span id="_CPPv3N19udGeometryVoxelNode10childDepthE"></span><span id="_CPPv2N19udGeometryVoxelNode10childDepthE"></span><span id="udGeometryVoxelNode::childDepth__uint8_t"></span><span class="target" id="structud_geometry_voxel_node_1ac8371ec8950713a7c112eddd01c8ae22"></span>uint8_t <code class="sig-name descname">childDepth</code><a class="headerlink" href="#_CPPv4N19udGeometryVoxelNode10childDepthE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Optional depth down the tree value for additional context (0=unpecified, 1=root etc) </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv418udGeometryCircleXY">
<span id="_CPPv318udGeometryCircleXY"></span><span id="_CPPv218udGeometryCircleXY"></span><span id="udGeometryCircleXY"></span><span class="target" id="structud_geometry_circle_x_y"></span><em class="property">struct </em><code class="sig-name descname">udGeometryCircleXY</code><a class="headerlink" href="#_CPPv418udGeometryCircleXY" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>The geometric representation of a Circle. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N18udGeometryCircleXY6centreE">
<span id="_CPPv3N18udGeometryCircleXY6centreE"></span><span id="_CPPv2N18udGeometryCircleXY6centreE"></span><span id="udGeometryCircleXY::centre__udGeometryDouble2"></span><span class="target" id="structud_geometry_circle_x_y_1a9b126cb6876075a0e9820f53572167f7"></span><a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> <code class="sig-name descname">centre</code><a class="headerlink" href="#_CPPv4N18udGeometryCircleXY6centreE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The centre of the circle. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udGeometryCircleXY6radiusE">
<span id="_CPPv3N18udGeometryCircleXY6radiusE"></span><span id="_CPPv2N18udGeometryCircleXY6radiusE"></span><span id="udGeometryCircleXY::radius__double"></span><span class="target" id="structud_geometry_circle_x_y_1a9a43c7b3cb5c3f2a88fac2a05dc3cc11"></span>double <code class="sig-name descname">radius</code><a class="headerlink" href="#_CPPv4N18udGeometryCircleXY6radiusE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The radius of the circle. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv421udGeometryRectangleXY">
<span id="_CPPv321udGeometryRectangleXY"></span><span id="_CPPv221udGeometryRectangleXY"></span><span id="udGeometryRectangleXY"></span><span class="target" id="structud_geometry_rectangle_x_y"></span><em class="property">struct </em><code class="sig-name descname">udGeometryRectangleXY</code><a class="headerlink" href="#_CPPv421udGeometryRectangleXY" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>The geometric representation of a Rectangle. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N21udGeometryRectangleXY8minPointE">
<span id="_CPPv3N21udGeometryRectangleXY8minPointE"></span><span id="_CPPv2N21udGeometryRectangleXY8minPointE"></span><span id="udGeometryRectangleXY::minPoint__udGeometryDouble2"></span><span class="target" id="structud_geometry_rectangle_x_y_1a4214a4594c74232dce38d47d153e9229"></span><a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> <code class="sig-name descname">minPoint</code><a class="headerlink" href="#_CPPv4N21udGeometryRectangleXY8minPointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The lowest point of the rectangle. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N21udGeometryRectangleXY8maxPointE">
<span id="_CPPv3N21udGeometryRectangleXY8maxPointE"></span><span id="_CPPv2N21udGeometryRectangleXY8maxPointE"></span><span id="udGeometryRectangleXY::maxPoint__udGeometryDouble2"></span><span class="target" id="structud_geometry_rectangle_x_y_1a45e8c4d43b037bffdaeb46365df51c13"></span><a class="reference internal" href="#_CPPv417udGeometryDouble2" title="udGeometryDouble2">udGeometryDouble2</a> <code class="sig-name descname">maxPoint</code><a class="headerlink" href="#_CPPv4N21udGeometryRectangleXY8maxPointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The highest point of the rectangle. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv420udGeometryPolygonXYZ">
<span id="_CPPv320udGeometryPolygonXYZ"></span><span id="_CPPv220udGeometryPolygonXYZ"></span><span id="udGeometryPolygonXYZ"></span><span class="target" id="structud_geometry_polygon_x_y_z"></span><em class="property">struct </em><code class="sig-name descname">udGeometryPolygonXYZ</code><a class="headerlink" href="#_CPPv420udGeometryPolygonXYZ" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>The geometric representation of a Polygon. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N20udGeometryPolygonXYZ10pointCountE">
<span id="_CPPv3N20udGeometryPolygonXYZ10pointCountE"></span><span id="_CPPv2N20udGeometryPolygonXYZ10pointCountE"></span><span id="udGeometryPolygonXYZ::pointCount__uint32_t"></span><span class="target" id="structud_geometry_polygon_x_y_z_1a505d10d1427c6f7c0216ca31b22c68a2"></span>uint32_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N20udGeometryPolygonXYZ10pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>THe number of points defining the polygon. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N20udGeometryPolygonXYZ10pointsListE">
<span id="_CPPv3N20udGeometryPolygonXYZ10pointsListE"></span><span id="_CPPv2N20udGeometryPolygonXYZ10pointsListE"></span><span id="udGeometryPolygonXYZ::pointsList__udGeometryDouble3P"></span><span class="target" id="structud_geometry_polygon_x_y_z_1a80f6b5e5589b5edb1d3ad403d673059e"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> *<code class="sig-name descname">pointsList</code><a class="headerlink" href="#_CPPv4N20udGeometryPolygonXYZ10pointsListE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The list of points defining the polygon. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N20udGeometryPolygonXYZ12rotationQuatE">
<span id="_CPPv3N20udGeometryPolygonXYZ12rotationQuatE"></span><span id="_CPPv2N20udGeometryPolygonXYZ12rotationQuatE"></span><span id="udGeometryPolygonXYZ::rotationQuat__udGeometryDouble4"></span><span class="target" id="structud_geometry_polygon_x_y_z_1a1c0382d878a260cf79b36446aa09da9b"></span><a class="reference internal" href="#_CPPv417udGeometryDouble4" title="udGeometryDouble4">udGeometryDouble4</a> <code class="sig-name descname">rotationQuat</code><a class="headerlink" href="#_CPPv4N20udGeometryPolygonXYZ12rotationQuatE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The rotation of the polygon. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv428udGeometryPolygonPerspective">
<span id="_CPPv328udGeometryPolygonPerspective"></span><span id="_CPPv228udGeometryPolygonPerspective"></span><span id="udGeometryPolygonPerspective"></span><span class="target" id="structud_geometry_polygon_perspective"></span><em class="property">struct </em><code class="sig-name descname">udGeometryPolygonPerspective</code><a class="headerlink" href="#_CPPv428udGeometryPolygonPerspective" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>The geometric representation of a Polygon with a perspective projection. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective10pointCountE">
<span id="_CPPv3N28udGeometryPolygonPerspective10pointCountE"></span><span id="_CPPv2N28udGeometryPolygonPerspective10pointCountE"></span><span id="udGeometryPolygonPerspective::pointCount__uint32_t"></span><span class="target" id="structud_geometry_polygon_perspective_1a794f8db3cf214eec58b9724ff03ea606"></span>uint32_t <code class="sig-name descname">pointCount</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective10pointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The number of points defining the polygon. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective10pointsListE">
<span id="_CPPv3N28udGeometryPolygonPerspective10pointsListE"></span><span id="_CPPv2N28udGeometryPolygonPerspective10pointsListE"></span><span id="udGeometryPolygonPerspective::pointsList__udGeometryDouble3P"></span><span class="target" id="structud_geometry_polygon_perspective_1a19fa9a66ae4d70e23b5b47e8c6baee48"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> *<code class="sig-name descname">pointsList</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective10pointsListE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The list of points defining the polygon. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective12rotationQuatE">
<span id="_CPPv3N28udGeometryPolygonPerspective12rotationQuatE"></span><span id="_CPPv2N28udGeometryPolygonPerspective12rotationQuatE"></span><span id="udGeometryPolygonPerspective::rotationQuat__udGeometryDouble4"></span><span class="target" id="structud_geometry_polygon_perspective_1af93211346daae097aa452b736d5dfcf3"></span><a class="reference internal" href="#_CPPv417udGeometryDouble4" title="udGeometryDouble4">udGeometryDouble4</a> <code class="sig-name descname">rotationQuat</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective12rotationQuatE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The rotation of the polygon. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective13worldToScreenE">
<span id="_CPPv3N28udGeometryPolygonPerspective13worldToScreenE"></span><span id="_CPPv2N28udGeometryPolygonPerspective13worldToScreenE"></span><span id="udGeometryPolygonPerspective::worldToScreen__udGeometryDouble4x4"></span><span class="target" id="structud_geometry_polygon_perspective_1a248b7c36efa78ef90d0dab9c28dbf65e"></span><a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> <code class="sig-name descname">worldToScreen</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective13worldToScreenE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The matrix to project from World space to Screen space. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective16projectionMatrixE">
<span id="_CPPv3N28udGeometryPolygonPerspective16projectionMatrixE"></span><span id="_CPPv2N28udGeometryPolygonPerspective16projectionMatrixE"></span><span id="udGeometryPolygonPerspective::projectionMatrix__udGeometryDouble4x4"></span><span class="target" id="structud_geometry_polygon_perspective_1a611be8c344ecbe340244ece60974fc04"></span><a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> <code class="sig-name descname">projectionMatrix</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective16projectionMatrixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The matrix to project the points of the polygon. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective12cameraMatrixE">
<span id="_CPPv3N28udGeometryPolygonPerspective12cameraMatrixE"></span><span id="_CPPv2N28udGeometryPolygonPerspective12cameraMatrixE"></span><span id="udGeometryPolygonPerspective::cameraMatrix__udGeometryDouble4x4"></span><span class="target" id="structud_geometry_polygon_perspective_1aedb77562cba7ee11676c2786ad34b1f4"></span><a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> <code class="sig-name descname">cameraMatrix</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective12cameraMatrixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The camera matrix. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective9normRightE">
<span id="_CPPv3N28udGeometryPolygonPerspective9normRightE"></span><span id="_CPPv2N28udGeometryPolygonPerspective9normRightE"></span><span id="udGeometryPolygonPerspective::normRight__udGeometryDouble3"></span><span class="target" id="structud_geometry_polygon_perspective_1a0b7e771c9c0bec5d9feba4feb2943270"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">normRight</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective9normRightE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The normal on the right of the plane. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective8normLeftE">
<span id="_CPPv3N28udGeometryPolygonPerspective8normLeftE"></span><span id="_CPPv2N28udGeometryPolygonPerspective8normLeftE"></span><span id="udGeometryPolygonPerspective::normLeft__udGeometryDouble3"></span><span class="target" id="structud_geometry_polygon_perspective_1a910d87e3949f60e6fa02d1cfe01a1800"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">normLeft</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective8normLeftE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The normal on the left of the plane. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective7normTopE">
<span id="_CPPv3N28udGeometryPolygonPerspective7normTopE"></span><span id="_CPPv2N28udGeometryPolygonPerspective7normTopE"></span><span id="udGeometryPolygonPerspective::normTop__udGeometryDouble3"></span><span class="target" id="structud_geometry_polygon_perspective_1a19ff2e94b64bc3bb7614f8e24a629022"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">normTop</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective7normTopE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The normal on the top of the plane. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective10normBottomE">
<span id="_CPPv3N28udGeometryPolygonPerspective10normBottomE"></span><span id="_CPPv2N28udGeometryPolygonPerspective10normBottomE"></span><span id="udGeometryPolygonPerspective::normBottom__udGeometryDouble3"></span><span class="target" id="structud_geometry_polygon_perspective_1adb6ddc972e247d2fe92d4df442324bc9"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">normBottom</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective10normBottomE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The normal on the bottom of the plane. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective9nearPlaneE">
<span id="_CPPv3N28udGeometryPolygonPerspective9nearPlaneE"></span><span id="_CPPv2N28udGeometryPolygonPerspective9nearPlaneE"></span><span id="udGeometryPolygonPerspective::nearPlane__double"></span><span class="target" id="structud_geometry_polygon_perspective_1abcc5b774e121244cffc568632c9f17cf"></span>double <code class="sig-name descname">nearPlane</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective9nearPlaneE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>the near plane distance </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N28udGeometryPolygonPerspective8farPlaneE">
<span id="_CPPv3N28udGeometryPolygonPerspective8farPlaneE"></span><span id="_CPPv2N28udGeometryPolygonPerspective8farPlaneE"></span><span id="udGeometryPolygonPerspective::farPlane__double"></span><span class="target" id="structud_geometry_polygon_perspective_1a0201da6099efbd76a55f5f2c552ede72"></span>double <code class="sig-name descname">farPlane</code><a class="headerlink" href="#_CPPv4N28udGeometryPolygonPerspective8farPlaneE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The far plane distance. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv417udGeometryCapsule">
<span id="_CPPv317udGeometryCapsule"></span><span id="_CPPv217udGeometryCapsule"></span><span id="udGeometryCapsule"></span><span class="target" id="structud_geometry_capsule"></span><em class="property">struct </em><code class="sig-name descname">udGeometryCapsule</code><a class="headerlink" href="#_CPPv417udGeometryCapsule" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a geometric capsule </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N17udGeometryCapsule6point1E">
<span id="_CPPv3N17udGeometryCapsule6point1E"></span><span id="_CPPv2N17udGeometryCapsule6point1E"></span><span id="udGeometryCapsule::point1__udGeometryDouble3"></span><span class="target" id="structud_geometry_capsule_1a60844b7acc1d7d80c5770b27649494dd"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">point1</code><a class="headerlink" href="#_CPPv4N17udGeometryCapsule6point1E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>One end of the line. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udGeometryCapsule6point2E">
<span id="_CPPv3N17udGeometryCapsule6point2E"></span><span id="_CPPv2N17udGeometryCapsule6point2E"></span><span id="udGeometryCapsule::point2__udGeometryDouble3"></span><span class="target" id="structud_geometry_capsule_1a631db8e5aaf923fd60b5d7190549949a"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">point2</code><a class="headerlink" href="#_CPPv4N17udGeometryCapsule6point2E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The other end of the line. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udGeometryCapsule6radiusE">
<span id="_CPPv3N17udGeometryCapsule6radiusE"></span><span id="_CPPv2N17udGeometryCapsule6radiusE"></span><span id="udGeometryCapsule::radius__double"></span><span class="target" id="structud_geometry_capsule_1af20dfde8091f8505752c46ee43e0db49"></span>double <code class="sig-name descname">radius</code><a class="headerlink" href="#_CPPv4N17udGeometryCapsule6radiusE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The radius around the line. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udGeometryCapsule10axisVectorE">
<span id="_CPPv3N17udGeometryCapsule10axisVectorE"></span><span id="_CPPv2N17udGeometryCapsule10axisVectorE"></span><span id="udGeometryCapsule::axisVector__udGeometryDouble3"></span><span class="target" id="structud_geometry_capsule_1a0feae4a2d49241784c1a5fab7031436f"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">axisVector</code><a class="headerlink" href="#_CPPv4N17udGeometryCapsule10axisVectorE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The vector of the line. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udGeometryCapsule6lengthE">
<span id="_CPPv3N17udGeometryCapsule6lengthE"></span><span id="_CPPv2N17udGeometryCapsule6lengthE"></span><span id="udGeometryCapsule::length__double"></span><span class="target" id="structud_geometry_capsule_1ac307738a7cf4572d6f81f3493748dfd3"></span>double <code class="sig-name descname">length</code><a class="headerlink" href="#_CPPv4N17udGeometryCapsule6lengthE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The length of the line. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv416udGeometrySphere">
<span id="_CPPv316udGeometrySphere"></span><span id="_CPPv216udGeometrySphere"></span><span id="udGeometrySphere"></span><span class="target" id="structud_geometry_sphere"></span><em class="property">struct </em><code class="sig-name descname">udGeometrySphere</code><a class="headerlink" href="#_CPPv416udGeometrySphere" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a geometric sphere </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udGeometrySphere6centerE">
<span id="_CPPv3N16udGeometrySphere6centerE"></span><span id="_CPPv2N16udGeometrySphere6centerE"></span><span id="udGeometrySphere::center__udGeometryDouble3"></span><span class="target" id="structud_geometry_sphere_1aea47ec7d715944da53ab896d2e9565af"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">center</code><a class="headerlink" href="#_CPPv4N16udGeometrySphere6centerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The center of the sphere. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udGeometrySphere6radiusE">
<span id="_CPPv3N16udGeometrySphere6radiusE"></span><span id="_CPPv2N16udGeometrySphere6radiusE"></span><span id="udGeometrySphere::radius__double"></span><span class="target" id="structud_geometry_sphere_1ac5cbb2cc250571414f80f48caffff1e7"></span>double <code class="sig-name descname">radius</code><a class="headerlink" href="#_CPPv4N16udGeometrySphere6radiusE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The radius of the sphere. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv419udGeometryHalfSpace">
<span id="_CPPv319udGeometryHalfSpace"></span><span id="_CPPv219udGeometryHalfSpace"></span><span id="udGeometryHalfSpace"></span><span class="target" id="structud_geometry_half_space"></span><em class="property">struct </em><code class="sig-name descname">udGeometryHalfSpace</code><a class="headerlink" href="#_CPPv419udGeometryHalfSpace" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a geometric half space </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udGeometryHalfSpace5planeE">
<span id="_CPPv3N19udGeometryHalfSpace5planeE"></span><span id="_CPPv2N19udGeometryHalfSpace5planeE"></span><span id="udGeometryHalfSpace::plane__udGeometryDouble4"></span><span class="target" id="structud_geometry_half_space_1a4333fe4a69e1fab27845a1d329d82869"></span><a class="reference internal" href="#_CPPv417udGeometryDouble4" title="udGeometryDouble4">udGeometryDouble4</a> <code class="sig-name descname">plane</code><a class="headerlink" href="#_CPPv4N19udGeometryHalfSpace5planeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The parameters to define the plane (normal XYZ and offset from origin) </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv414udGeometryAABB">
<span id="_CPPv314udGeometryAABB"></span><span id="_CPPv214udGeometryAABB"></span><span id="udGeometryAABB"></span><span class="target" id="structud_geometry_a_a_b_b"></span><em class="property">struct </em><code class="sig-name descname">udGeometryAABB</code><a class="headerlink" href="#_CPPv414udGeometryAABB" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a geometric axis aligned bounding box </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N14udGeometryAABB6centerE">
<span id="_CPPv3N14udGeometryAABB6centerE"></span><span id="_CPPv2N14udGeometryAABB6centerE"></span><span id="udGeometryAABB::center__udGeometryDouble3"></span><span class="target" id="structud_geometry_a_a_b_b_1a0292cdee851a5a134653faba68e2ea29"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">center</code><a class="headerlink" href="#_CPPv4N14udGeometryAABB6centerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The point at the center of the AABB. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udGeometryAABB7extentsE">
<span id="_CPPv3N14udGeometryAABB7extentsE"></span><span id="_CPPv2N14udGeometryAABB7extentsE"></span><span id="udGeometryAABB::extents__udGeometryDouble3"></span><span class="target" id="structud_geometry_a_a_b_b_1a30f6a018d624631118f822275768aaa2"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">extents</code><a class="headerlink" href="#_CPPv4N14udGeometryAABB7extentsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The half space size of the AABB. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv413udGeometryOBB">
<span id="_CPPv313udGeometryOBB"></span><span id="_CPPv213udGeometryOBB"></span><span id="udGeometryOBB"></span><span class="target" id="structud_geometry_o_b_b"></span><em class="property">struct </em><code class="sig-name descname">udGeometryOBB</code><a class="headerlink" href="#_CPPv413udGeometryOBB" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a geometric axis aligned bounding box (extending AABB) </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udGeometryOBB6centerE">
<span id="_CPPv3N13udGeometryOBB6centerE"></span><span id="_CPPv2N13udGeometryOBB6centerE"></span><span id="udGeometryOBB::center__udGeometryDouble3"></span><span class="target" id="structud_geometry_o_b_b_1af46e81df76664beeda3077f5ad6e6d53"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">center</code><a class="headerlink" href="#_CPPv4N13udGeometryOBB6centerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The point at the center of the AABB. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udGeometryOBB7extentsE">
<span id="_CPPv3N13udGeometryOBB7extentsE"></span><span id="_CPPv2N13udGeometryOBB7extentsE"></span><span id="udGeometryOBB::extents__udGeometryDouble3"></span><span class="target" id="structud_geometry_o_b_b_1a9d89a38d3dfc9d0027798f7f7b15d8a9"></span><a class="reference internal" href="#_CPPv417udGeometryDouble3" title="udGeometryDouble3">udGeometryDouble3</a> <code class="sig-name descname">extents</code><a class="headerlink" href="#_CPPv4N13udGeometryOBB7extentsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The half space size of the AABB. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udGeometryOBB14rotationMatrixE">
<span id="_CPPv3N13udGeometryOBB14rotationMatrixE"></span><span id="_CPPv2N13udGeometryOBB14rotationMatrixE"></span><span id="udGeometryOBB::rotationMatrix__udGeometryDouble4x4"></span><span class="target" id="structud_geometry_o_b_b_1aab7a84e6b86760ca0e38e83931bbeedc"></span><a class="reference internal" href="#_CPPv419udGeometryDouble4x4" title="udGeometryDouble4x4">udGeometryDouble4x4</a> <code class="sig-name descname">rotationMatrix</code><a class="headerlink" href="#_CPPv4N13udGeometryOBB14rotationMatrixE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The transform that represents the rotation. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv417udGeometryInverse">
<span id="_CPPv317udGeometryInverse"></span><span id="_CPPv217udGeometryInverse"></span><span id="udGeometryInverse"></span><span class="target" id="structud_geometry_inverse"></span><em class="property">struct </em><code class="sig-name descname">udGeometryInverse</code><a class="headerlink" href="#_CPPv417udGeometryInverse" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of an inversed <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> node </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N17udGeometryInverse10pInverseOfE">
<span id="_CPPv3N17udGeometryInverse10pInverseOfE"></span><span id="_CPPv2N17udGeometryInverse10pInverseOfE"></span><span id="udGeometryInverse::pInverseOf__udGeometryCP"></span><span class="target" id="structud_geometry_inverse_1a388863f86a672ede835c380d0ca70f54"></span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<code class="sig-name descname">pInverseOf</code><a class="headerlink" href="#_CPPv4N17udGeometryInverse10pInverseOfE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The inverse geometry. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udGeometryInverse4ownsE">
<span id="_CPPv3N17udGeometryInverse4ownsE"></span><span id="_CPPv2N17udGeometryInverse4ownsE"></span><span id="udGeometryInverse::owns__i"></span><span class="target" id="structud_geometry_inverse_1a6cfb2b7d86c4ba9c05b839f2b808606f"></span>int <code class="sig-name descname">owns</code><a class="headerlink" href="#_CPPv4N17udGeometryInverse4ownsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If non-zero pInverseOf is owned by this need (and will need to be cleaned up) </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv413udGeometryCSG">
<span id="_CPPv313udGeometryCSG"></span><span id="_CPPv213udGeometryCSG"></span><span id="udGeometryCSG"></span><span class="target" id="structud_geometry_c_s_g"></span><em class="property">struct </em><code class="sig-name descname">udGeometryCSG</code><a class="headerlink" href="#_CPPv413udGeometryCSG" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a CSG <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> node </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udGeometryCSG6pFirstE">
<span id="_CPPv3N13udGeometryCSG6pFirstE"></span><span id="_CPPv2N13udGeometryCSG6pFirstE"></span><span id="udGeometryCSG::pFirst__udGeometryCP"></span><span class="target" id="structud_geometry_c_s_g_1a76fb6bf0555a16f1510eba5600179553"></span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<code class="sig-name descname">pFirst</code><a class="headerlink" href="#_CPPv4N13udGeometryCSG6pFirstE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The first geometry. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udGeometryCSG7pSecondE">
<span id="_CPPv3N13udGeometryCSG7pSecondE"></span><span id="_CPPv2N13udGeometryCSG7pSecondE"></span><span id="udGeometryCSG::pSecond__udGeometryCP"></span><span class="target" id="structud_geometry_c_s_g_1ab9c35a81aa173da2e4c59fe341918a96"></span><em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<code class="sig-name descname">pSecond</code><a class="headerlink" href="#_CPPv4N13udGeometryCSG7pSecondE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The second geometry. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udGeometryCSG9operationE">
<span id="_CPPv3N13udGeometryCSG9operationE"></span><span id="_CPPv2N13udGeometryCSG9operationE"></span><span id="udGeometryCSG::operation__udGeometryCSGOperation"></span><span class="target" id="structud_geometry_c_s_g_1a53d7b197441bce66e1695986a9880859"></span><a class="reference internal" href="#_CPPv422udGeometryCSGOperation" title="udGeometryCSGOperation">udGeometryCSGOperation</a> <code class="sig-name descname">operation</code><a class="headerlink" href="#_CPPv4N13udGeometryCSG9operationE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The operation applied to the 2 geometries. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udGeometryCSG4ownsE">
<span id="_CPPv3N13udGeometryCSG4ownsE"></span><span id="_CPPv2N13udGeometryCSG4ownsE"></span><span id="udGeometryCSG::owns__i"></span><span class="target" id="structud_geometry_c_s_g_1a92bce8a5dbaa8b751d6979b05a3ba6f1"></span>int <code class="sig-name descname">owns</code><a class="headerlink" href="#_CPPv4N13udGeometryCSG4ownsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>non zero if it owns both children </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv419udGeometryAttribute">
<span id="_CPPv319udGeometryAttribute"></span><span id="_CPPv219udGeometryAttribute"></span><span id="udGeometryAttribute"></span><span class="target" id="structud_geometry_attribute"></span><em class="property">struct </em><code class="sig-name descname">udGeometryAttribute</code><a class="headerlink" href="#_CPPv419udGeometryAttribute" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the properties of a attribute <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> node </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udGeometryAttribute4attrE">
<span id="_CPPv3N19udGeometryAttribute4attrE"></span><span id="_CPPv2N19udGeometryAttribute4attrE"></span><span id="udGeometryAttribute::attr__udStdAttribute"></span><span class="target" id="structud_geometry_attribute_1a027c7a6870167a103619d8bda4a64738"></span><a class="reference internal" href="#_CPPv414udStdAttribute" title="udStdAttribute">udStdAttribute</a> <code class="sig-name descname">attr</code><a class="headerlink" href="#_CPPv4N19udGeometryAttribute4attrE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N19udGeometryAttribute6iValueE">
<span id="_CPPv3N19udGeometryAttribute6iValueE"></span><span id="_CPPv2N19udGeometryAttribute6iValueE"></span><span id="udGeometryAttribute::iValue__int64_t"></span><span class="target" id="structud_geometry_attribute_1a79aa690270b3d8286e70d23d2aa263bf"></span>int64_t <code class="sig-name descname">iValue</code><a class="headerlink" href="#_CPPv4N19udGeometryAttribute6iValueE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N19udGeometryAttribute6fValueE">
<span id="_CPPv3N19udGeometryAttribute6fValueE"></span><span id="_CPPv2N19udGeometryAttribute6fValueE"></span><span id="udGeometryAttribute::fValue__double"></span><span class="target" id="structud_geometry_attribute_1ada0f1660981a656fde0e70764b94b15d"></span>double <code class="sig-name descname">fValue</code><a class="headerlink" href="#_CPPv4N19udGeometryAttribute6fValueE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N19udGeometryAttribute4dataE">
<span id="_CPPv3N19udGeometryAttribute4dataE"></span><span id="_CPPv2N19udGeometryAttribute4dataE"></span><span class="target" id="structud_geometry_attribute_1abd88e447dab8e85a38572ee6ab6ce0d9"></span><em class="property">union</em> <a class="reference internal" href="#_CPPv419udGeometryAttribute" title="udGeometryAttribute">udGeometryAttribute</a>::<strong>[anonymous]</strong> <code class="sig-name descname">data</code><a class="headerlink" href="#_CPPv4N19udGeometryAttribute4dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv410udGeometry">
<span id="_CPPv310udGeometry"></span><span id="_CPPv210udGeometry"></span><span id="udGeometry"></span><span class="target" id="structud_geometry"></span><em class="property">struct </em><code class="sig-name descname">udGeometry</code><a class="headerlink" href="#_CPPv410udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udGeometry.h&gt;</em><p>Stores the information required for all <a class="reference internal" href="#structud_geometry"><span class="std std-ref">udGeometry</span></a> shapes <dl class="simple">
<dt><strong>Warning</strong></dt><dd><p>This struct will change drastically as udSDK shifts to programable query filters </p>
</dd>
</dl>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N10udGeometry9pTestFuncE">
<span id="_CPPv3N10udGeometry9pTestFuncE"></span><span id="_CPPv2N10udGeometry9pTestFuncE"></span><span id="udGeometry::pTestFunc__udGeometryTestFuncP"></span><span class="target" id="structud_geometry_1aece0af44bbe429b6a20e7b24ead60937"></span><a class="reference internal" href="#_CPPv418udGeometryTestFuncPK10udGeometryPK19udGeometryVoxelNode" title="udGeometryTestFunc">udGeometryTestFunc</a> *<code class="sig-name descname">pTestFunc</code><a class="headerlink" href="#_CPPv4N10udGeometry9pTestFuncE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The function to call to test the geometry. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry14pTransformFuncE">
<span id="_CPPv3N10udGeometry14pTransformFuncE"></span><span id="_CPPv2N10udGeometry14pTransformFuncE"></span><span id="udGeometry::pTransformFunc__udGeometryTransformP"></span><span class="target" id="structud_geometry_1a96c970f579710b159426e841d535f375"></span><a class="reference internal" href="#_CPPv419udGeometryTransformPK10udGeometryP10udGeometryPK19udGeometryDouble4x4" title="udGeometryTransform">udGeometryTransform</a> *<code class="sig-name descname">pTransformFunc</code><a class="headerlink" href="#_CPPv4N10udGeometry14pTransformFuncE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The function to transform this geometry using a linear matrix. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry13pExtraCRCFuncE">
<span id="_CPPv3N10udGeometry13pExtraCRCFuncE"></span><span id="_CPPv2N10udGeometry13pExtraCRCFuncE"></span><span id="udGeometry::pExtraCRCFunc__udGeometryCrcP"></span><span class="target" id="structud_geometry_1a0e4c27469066c503012b30366df9b933"></span><a class="reference internal" href="#_CPPv413udGeometryCrc" title="udGeometryCrc">udGeometryCrc</a> *<code class="sig-name descname">pExtraCRCFunc</code><a class="headerlink" href="#_CPPv4N10udGeometry13pExtraCRCFuncE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>When non-null, the function to perform crc calculation on ADDITIONAL data outside the base structure that represents the geometry (0 is valid for no extra data) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry11pDeinitFuncE">
<span id="_CPPv3N10udGeometry11pDeinitFuncE"></span><span id="_CPPv2N10udGeometry11pDeinitFuncE"></span><span id="udGeometry::pDeinitFunc__udGeometryDeinitP"></span><span class="target" id="structud_geometry_1abc7b435ef17101b9fcdcca29ee057e5c"></span><a class="reference internal" href="#_CPPv416udGeometryDeinit" title="udGeometryDeinit">udGeometryDeinit</a> *<code class="sig-name descname">pDeinitFunc</code><a class="headerlink" href="#_CPPv4N10udGeometry11pDeinitFuncE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The function that is called when this is cleaned up. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry7inverseE">
<span id="_CPPv3N10udGeometry7inverseE"></span><span id="_CPPv2N10udGeometry7inverseE"></span><span id="udGeometry::inverse__udGeometryInverse"></span><span class="target" id="structud_geometry_1a5e96d586bbf5c62c715c0b42477ce443"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv417udGeometryInverse" title="udGeometryInverse">udGeometryInverse</a> <code class="sig-name descname">inverse</code><a class="headerlink" href="#_CPPv4N10udGeometry7inverseE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry8circleXYE">
<span id="_CPPv3N10udGeometry8circleXYE"></span><span id="_CPPv2N10udGeometry8circleXYE"></span><span id="udGeometry::circleXY__udGeometryCircleXY"></span><span class="target" id="structud_geometry_1a98fa4ed433e89b525b1aca2a6bd443f5"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv418udGeometryCircleXY" title="udGeometryCircleXY">udGeometryCircleXY</a> <code class="sig-name descname">circleXY</code><a class="headerlink" href="#_CPPv4N10udGeometry8circleXYE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry11rectangleXYE">
<span id="_CPPv3N10udGeometry11rectangleXYE"></span><span id="_CPPv2N10udGeometry11rectangleXYE"></span><span id="udGeometry::rectangleXY__udGeometryRectangleXY"></span><span class="target" id="structud_geometry_1a4d423031ceae1a838ea2a66bc74d63ef"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv421udGeometryRectangleXY" title="udGeometryRectangleXY">udGeometryRectangleXY</a> <code class="sig-name descname">rectangleXY</code><a class="headerlink" href="#_CPPv4N10udGeometry11rectangleXYE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry10polygonXYZE">
<span id="_CPPv3N10udGeometry10polygonXYZE"></span><span id="_CPPv2N10udGeometry10polygonXYZE"></span><span id="udGeometry::polygonXYZ__udGeometryPolygonXYZ"></span><span class="target" id="structud_geometry_1a5429059cf9a8fb489b7b617cc607a80d"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv420udGeometryPolygonXYZ" title="udGeometryPolygonXYZ">udGeometryPolygonXYZ</a> <code class="sig-name descname">polygonXYZ</code><a class="headerlink" href="#_CPPv4N10udGeometry10polygonXYZE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry18polygonPerspectiveE">
<span id="_CPPv3N10udGeometry18polygonPerspectiveE"></span><span id="_CPPv2N10udGeometry18polygonPerspectiveE"></span><span id="udGeometry::polygonPerspective__udGeometryPolygonPerspective"></span><span class="target" id="structud_geometry_1a8d15ea7480628c6c1d84986227b46f02"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv428udGeometryPolygonPerspective" title="udGeometryPolygonPerspective">udGeometryPolygonPerspective</a> <code class="sig-name descname">polygonPerspective</code><a class="headerlink" href="#_CPPv4N10udGeometry18polygonPerspectiveE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry7capsuleE">
<span id="_CPPv3N10udGeometry7capsuleE"></span><span id="_CPPv2N10udGeometry7capsuleE"></span><span id="udGeometry::capsule__udGeometryCapsule"></span><span class="target" id="structud_geometry_1a5778435e5b5d9a55cf29af8f26cf28b9"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv417udGeometryCapsule" title="udGeometryCapsule">udGeometryCapsule</a> <code class="sig-name descname">capsule</code><a class="headerlink" href="#_CPPv4N10udGeometry7capsuleE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry6sphereE">
<span id="_CPPv3N10udGeometry6sphereE"></span><span id="_CPPv2N10udGeometry6sphereE"></span><span id="udGeometry::sphere__udGeometrySphere"></span><span class="target" id="structud_geometry_1a2ce2b38dd48ef0f948bacb8f5bb00e6f"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udGeometrySphere" title="udGeometrySphere">udGeometrySphere</a> <code class="sig-name descname">sphere</code><a class="headerlink" href="#_CPPv4N10udGeometry6sphereE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry9halfSpaceE">
<span id="_CPPv3N10udGeometry9halfSpaceE"></span><span id="_CPPv2N10udGeometry9halfSpaceE"></span><span id="udGeometry::halfSpace__udGeometryHalfSpace"></span><span class="target" id="structud_geometry_1a83d13b2f15c356a53da2741e326a339a"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udGeometryHalfSpace" title="udGeometryHalfSpace">udGeometryHalfSpace</a> <code class="sig-name descname">halfSpace</code><a class="headerlink" href="#_CPPv4N10udGeometry9halfSpaceE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry4aabbE">
<span id="_CPPv3N10udGeometry4aabbE"></span><span id="_CPPv2N10udGeometry4aabbE"></span><span id="udGeometry::aabb__udGeometryAABB"></span><span class="target" id="structud_geometry_1a05c72dbe0d0ec3cf3d170bd206746663"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udGeometryAABB" title="udGeometryAABB">udGeometryAABB</a> <code class="sig-name descname">aabb</code><a class="headerlink" href="#_CPPv4N10udGeometry4aabbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry3obbE">
<span id="_CPPv3N10udGeometry3obbE"></span><span id="_CPPv2N10udGeometry3obbE"></span><span id="udGeometry::obb__udGeometryOBB"></span><span class="target" id="structud_geometry_1a07ad2bbc2b2c238979fa666ca110f740"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udGeometryOBB" title="udGeometryOBB">udGeometryOBB</a> <code class="sig-name descname">obb</code><a class="headerlink" href="#_CPPv4N10udGeometry3obbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry3csgE">
<span id="_CPPv3N10udGeometry3csgE"></span><span id="_CPPv2N10udGeometry3csgE"></span><span id="udGeometry::csg__udGeometryCSG"></span><span class="target" id="structud_geometry_1a08987bf10a588ad15f256a257fb57430"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udGeometryCSG" title="udGeometryCSG">udGeometryCSG</a> <code class="sig-name descname">csg</code><a class="headerlink" href="#_CPPv4N10udGeometry3csgE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry9attributeE">
<span id="_CPPv3N10udGeometry9attributeE"></span><span id="_CPPv2N10udGeometry9attributeE"></span><span id="udGeometry::attribute__udGeometryAttribute"></span><span class="target" id="structud_geometry_1ac37253f8dd1feb9668a13be35c42fb2c"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udGeometryAttribute" title="udGeometryAttribute">udGeometryAttribute</a> <code class="sig-name descname">attribute</code><a class="headerlink" href="#_CPPv4N10udGeometry9attributeE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry4dataE">
<span id="_CPPv3N10udGeometry4dataE"></span><span id="_CPPv2N10udGeometry4dataE"></span><span class="target" id="structud_geometry_1afb17bfbc0973f409a9260c7bcf79f112"></span><em class="property">union</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a>::<strong>[anonymous]</strong> <code class="sig-name descname">data</code><a class="headerlink" href="#_CPPv4N10udGeometry4dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The geometry used. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N10udGeometry4typeE">
<span id="_CPPv3N10udGeometry4typeE"></span><span id="_CPPv2N10udGeometry4typeE"></span><span id="udGeometry::type__udGeometryType"></span><span class="target" id="structud_geometry_1a4fc7b643f05e2f4404535761855da916"></span><a class="reference internal" href="#_CPPv414udGeometryType" title="udGeometryType">udGeometryType</a> <code class="sig-name descname">type</code><a class="headerlink" href="#_CPPv4N10udGeometry4typeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The type of the geometry for internal verification. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="udmathtypes">
<h3>udMathTypes<a class="headerlink" href="#udmathtypes" title="Permalink to this headline">¶</a></h3>
<p>udMathTypes.h provides an interface for simple math types use in udSDK functions. </p>
<dl class="class">
<dt id="_CPPv413udMathDouble2">
<span id="_CPPv313udMathDouble2"></span><span id="_CPPv213udMathDouble2"></span><span id="udMathDouble2"></span><span class="target" id="structud_math_double2"></span><em class="property">struct </em><code class="sig-name descname">udMathDouble2</code><a class="headerlink" href="#_CPPv413udMathDouble2" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 2D geometric vector with double precision </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udMathDouble21xE">
<span id="_CPPv3N13udMathDouble21xE"></span><span id="_CPPv2N13udMathDouble21xE"></span><span id="udMathDouble2::x__double"></span><span class="target" id="structud_math_double2_1aeebfca35e731d356e76f92df93be5cce"></span>double <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N13udMathDouble21xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udMathDouble21yE">
<span id="_CPPv3N13udMathDouble21yE"></span><span id="_CPPv2N13udMathDouble21yE"></span><span id="udMathDouble2::y__double"></span><span class="target" id="structud_math_double2_1a28720a4f257d18579d2f34b86a90e05c"></span>double <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N13udMathDouble21yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv411udMathLong2">
<span id="_CPPv311udMathLong2"></span><span id="_CPPv211udMathLong2"></span><span id="udMathLong2"></span><span class="target" id="structud_math_long2"></span><em class="property">struct </em><code class="sig-name descname">udMathLong2</code><a class="headerlink" href="#_CPPv411udMathLong2" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 2D geometric vector with 64bit integers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N11udMathLong21xE">
<span id="_CPPv3N11udMathLong21xE"></span><span id="_CPPv2N11udMathLong21xE"></span><span id="udMathLong2::x__int64_t"></span><span class="target" id="structud_math_long2_1ad2552fbe504eb668f692a171e5f890d4"></span>int64_t <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N11udMathLong21xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udMathLong21yE">
<span id="_CPPv3N11udMathLong21yE"></span><span id="_CPPv2N11udMathLong21yE"></span><span id="udMathLong2::y__int64_t"></span><span class="target" id="structud_math_long2_1aac2a303ebae830af3d0bed73bb687fe4"></span>int64_t <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N11udMathLong21yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv412udMathULong2">
<span id="_CPPv312udMathULong2"></span><span id="_CPPv212udMathULong2"></span><span id="udMathULong2"></span><span class="target" id="structud_math_u_long2"></span><em class="property">struct </em><code class="sig-name descname">udMathULong2</code><a class="headerlink" href="#_CPPv412udMathULong2" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 2D geometric vector with 64bit unsigned integers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N12udMathULong21xE">
<span id="_CPPv3N12udMathULong21xE"></span><span id="_CPPv2N12udMathULong21xE"></span><span id="udMathULong2::x__uint64_t"></span><span class="target" id="structud_math_u_long2_1a060eee80e773a3ad692ca52b83037636"></span>uint64_t <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N12udMathULong21xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udMathULong21yE">
<span id="_CPPv3N12udMathULong21yE"></span><span id="_CPPv2N12udMathULong21yE"></span><span id="udMathULong2::y__uint64_t"></span><span class="target" id="structud_math_u_long2_1ad7c1d2c6d0108affaaf48a2eb7256d4d"></span>uint64_t <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N12udMathULong21yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv413udMathDouble3">
<span id="_CPPv313udMathDouble3"></span><span id="_CPPv213udMathDouble3"></span><span id="udMathDouble3"></span><span class="target" id="structud_math_double3"></span><em class="property">struct </em><code class="sig-name descname">udMathDouble3</code><a class="headerlink" href="#_CPPv413udMathDouble3" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 3D geometric vector with double precision </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udMathDouble31xE">
<span id="_CPPv3N13udMathDouble31xE"></span><span id="_CPPv2N13udMathDouble31xE"></span><span id="udMathDouble3::x__double"></span><span class="target" id="structud_math_double3_1aef4a75d61a1153414055a1d59d1bcb7e"></span>double <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N13udMathDouble31xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udMathDouble31yE">
<span id="_CPPv3N13udMathDouble31yE"></span><span id="_CPPv2N13udMathDouble31yE"></span><span id="udMathDouble3::y__double"></span><span class="target" id="structud_math_double3_1a5e8e3ea49bbe459c384f2bd26b6e863f"></span>double <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N13udMathDouble31yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udMathDouble31zE">
<span id="_CPPv3N13udMathDouble31zE"></span><span id="_CPPv2N13udMathDouble31zE"></span><span id="udMathDouble3::z__double"></span><span class="target" id="structud_math_double3_1af41d67df5b42e4c8034a4b5ca80ad5c3"></span>double <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N13udMathDouble31zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv411udMathLong3">
<span id="_CPPv311udMathLong3"></span><span id="_CPPv211udMathLong3"></span><span id="udMathLong3"></span><span class="target" id="structud_math_long3"></span><em class="property">struct </em><code class="sig-name descname">udMathLong3</code><a class="headerlink" href="#_CPPv411udMathLong3" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 3D geometric vector with 64bit integers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N11udMathLong31xE">
<span id="_CPPv3N11udMathLong31xE"></span><span id="_CPPv2N11udMathLong31xE"></span><span id="udMathLong3::x__int64_t"></span><span class="target" id="structud_math_long3_1a43eaf649111446945e53e5e8b19dca2f"></span>int64_t <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N11udMathLong31xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udMathLong31yE">
<span id="_CPPv3N11udMathLong31yE"></span><span id="_CPPv2N11udMathLong31yE"></span><span id="udMathLong3::y__int64_t"></span><span class="target" id="structud_math_long3_1a4c184659b4d12ccb161d3264dc93437f"></span>int64_t <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N11udMathLong31yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udMathLong31zE">
<span id="_CPPv3N11udMathLong31zE"></span><span id="_CPPv2N11udMathLong31zE"></span><span id="udMathLong3::z__int64_t"></span><span class="target" id="structud_math_long3_1a1c6cf4c189e4e264417cd3cacc52d546"></span>int64_t <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N11udMathLong31zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv412udMathULong3">
<span id="_CPPv312udMathULong3"></span><span id="_CPPv212udMathULong3"></span><span id="udMathULong3"></span><span class="target" id="structud_math_u_long3"></span><em class="property">struct </em><code class="sig-name descname">udMathULong3</code><a class="headerlink" href="#_CPPv412udMathULong3" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 3D geometric vector with 64bit unsigned integers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N12udMathULong31xE">
<span id="_CPPv3N12udMathULong31xE"></span><span id="_CPPv2N12udMathULong31xE"></span><span id="udMathULong3::x__uint64_t"></span><span class="target" id="structud_math_u_long3_1a4733a243056affd4825a849f59cd3bc6"></span>uint64_t <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N12udMathULong31xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udMathULong31yE">
<span id="_CPPv3N12udMathULong31yE"></span><span id="_CPPv2N12udMathULong31yE"></span><span id="udMathULong3::y__uint64_t"></span><span class="target" id="structud_math_u_long3_1aef04d5edc57478c57a457662e8845411"></span>uint64_t <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N12udMathULong31yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udMathULong31zE">
<span id="_CPPv3N12udMathULong31zE"></span><span id="_CPPv2N12udMathULong31zE"></span><span id="udMathULong3::z__uint64_t"></span><span class="target" id="structud_math_u_long3_1a85e637529c5a5df25127b5af97df68d4"></span>uint64_t <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N12udMathULong31zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv413udMathDouble4">
<span id="_CPPv313udMathDouble4"></span><span id="_CPPv213udMathDouble4"></span><span id="udMathDouble4"></span><span class="target" id="structud_math_double4"></span><em class="property">struct </em><code class="sig-name descname">udMathDouble4</code><a class="headerlink" href="#_CPPv413udMathDouble4" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 4D geometric vector, or 3D vector for homogeneous coordinates with double precision </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N13udMathDouble41xE">
<span id="_CPPv3N13udMathDouble41xE"></span><span id="_CPPv2N13udMathDouble41xE"></span><span id="udMathDouble4::x__double"></span><span class="target" id="structud_math_double4_1a030fdd8eacf9c31809d2822468f40e8c"></span>double <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N13udMathDouble41xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udMathDouble41yE">
<span id="_CPPv3N13udMathDouble41yE"></span><span id="_CPPv2N13udMathDouble41yE"></span><span id="udMathDouble4::y__double"></span><span class="target" id="structud_math_double4_1a2abf2cf8b345854c2d6cd41dd31f9863"></span>double <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N13udMathDouble41yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udMathDouble41zE">
<span id="_CPPv3N13udMathDouble41zE"></span><span id="_CPPv2N13udMathDouble41zE"></span><span id="udMathDouble4::z__double"></span><span class="target" id="structud_math_double4_1aaa7394d3fa9f8c596472208df27e5567"></span>double <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N13udMathDouble41zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N13udMathDouble41wE">
<span id="_CPPv3N13udMathDouble41wE"></span><span id="_CPPv2N13udMathDouble41wE"></span><span id="udMathDouble4::w__double"></span><span class="target" id="structud_math_double4_1a793ba88a85ec78ad8bbcfdf5ac1cd840"></span>double <code class="sig-name descname">w</code><a class="headerlink" href="#_CPPv4N13udMathDouble41wE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The w coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv411udMathLong4">
<span id="_CPPv311udMathLong4"></span><span id="_CPPv211udMathLong4"></span><span id="udMathLong4"></span><span class="target" id="structud_math_long4"></span><em class="property">struct </em><code class="sig-name descname">udMathLong4</code><a class="headerlink" href="#_CPPv411udMathLong4" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 4D geometric vector, or 3D vector for homogeneous coordinates with 64bit integers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N11udMathLong41xE">
<span id="_CPPv3N11udMathLong41xE"></span><span id="_CPPv2N11udMathLong41xE"></span><span id="udMathLong4::x__int64_t"></span><span class="target" id="structud_math_long4_1ab07abad01a553fbe4f1247c2417dcf72"></span>int64_t <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N11udMathLong41xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udMathLong41yE">
<span id="_CPPv3N11udMathLong41yE"></span><span id="_CPPv2N11udMathLong41yE"></span><span id="udMathLong4::y__int64_t"></span><span class="target" id="structud_math_long4_1a69d8f0cc21324c21b09d564fecb6d2d7"></span>int64_t <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N11udMathLong41yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udMathLong41zE">
<span id="_CPPv3N11udMathLong41zE"></span><span id="_CPPv2N11udMathLong41zE"></span><span id="udMathLong4::z__int64_t"></span><span class="target" id="structud_math_long4_1a7e9ca8f7468eed6b8552df242b978dba"></span>int64_t <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N11udMathLong41zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udMathLong41wE">
<span id="_CPPv3N11udMathLong41wE"></span><span id="_CPPv2N11udMathLong41wE"></span><span id="udMathLong4::w__int64_t"></span><span class="target" id="structud_math_long4_1a75d3e40514f5a34225b0dff7abf50359"></span>int64_t <code class="sig-name descname">w</code><a class="headerlink" href="#_CPPv4N11udMathLong41wE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The w coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv412udMathULong4">
<span id="_CPPv312udMathULong4"></span><span id="_CPPv212udMathULong4"></span><span id="udMathULong4"></span><span class="target" id="structud_math_u_long4"></span><em class="property">struct </em><code class="sig-name descname">udMathULong4</code><a class="headerlink" href="#_CPPv412udMathULong4" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 4D geometric vector, or 3D vector for homogeneous coordinates with 64bit unsigned integers </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N12udMathULong41xE">
<span id="_CPPv3N12udMathULong41xE"></span><span id="_CPPv2N12udMathULong41xE"></span><span id="udMathULong4::x__uint64_t"></span><span class="target" id="structud_math_u_long4_1a0e3ea9f2cac45a57a8010c827f64f9b3"></span>uint64_t <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N12udMathULong41xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udMathULong41yE">
<span id="_CPPv3N12udMathULong41yE"></span><span id="_CPPv2N12udMathULong41yE"></span><span id="udMathULong4::y__uint64_t"></span><span class="target" id="structud_math_u_long4_1ac856ff478f184a7fba1b80850033e00a"></span>uint64_t <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N12udMathULong41yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udMathULong41zE">
<span id="_CPPv3N12udMathULong41zE"></span><span id="_CPPv2N12udMathULong41zE"></span><span id="udMathULong4::z__uint64_t"></span><span class="target" id="structud_math_u_long4_1a1ff84fc19c4e220bafaef731910535bd"></span>uint64_t <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N12udMathULong41zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordinate. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udMathULong41wE">
<span id="_CPPv3N12udMathULong41wE"></span><span id="_CPPv2N12udMathULong41wE"></span><span id="udMathULong4::w__uint64_t"></span><span class="target" id="structud_math_u_long4_1a153c1d0eaa98757c21c7d5b7bae342f3"></span>uint64_t <code class="sig-name descname">w</code><a class="headerlink" href="#_CPPv4N12udMathULong41wE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The w coordinate. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv415udMathDouble4x4">
<span id="_CPPv315udMathDouble4x4"></span><span id="_CPPv215udMathDouble4x4"></span><span id="udMathDouble4x4"></span><span class="target" id="structud_math_double4x4"></span><em class="property">struct </em><code class="sig-name descname">udMathDouble4x4</code><a class="headerlink" href="#_CPPv415udMathDouble4x4" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMathTypes.h&gt;</em><p>A 4x4 geometric matrix with double precision </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N15udMathDouble4x45arrayE">
<span id="_CPPv3N15udMathDouble4x45arrayE"></span><span id="_CPPv2N15udMathDouble4x45arrayE"></span><span id="udMathDouble4x4::array__doubleA"></span><span class="target" id="structud_math_double4x4_1a800dfbed40f9b496703975d6d3cdf728"></span>double <code class="sig-name descname">array</code>[16]<a class="headerlink" href="#_CPPv4N15udMathDouble4x45arrayE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The matrix elements storing the 4 values for each axis in this order: x axis, y axis, z axis, t axis. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="udquerycontext">
<h3>udQueryContext<a class="headerlink" href="#udquerycontext" title="Permalink to this headline">¶</a></h3>
<p>The udQueryContext object provides an interface to query or filter pointclouds. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv421udQueryContext_CreateP9udContextPP14udQueryContextP12udPointCloudPK10udGeometry">
<span id="_CPPv321udQueryContext_CreateP9udContextPP14udQueryContextP12udPointCloudPK10udGeometry"></span><span id="_CPPv221udQueryContext_CreateP9udContextPP14udQueryContextP12udPointCloudPK10udGeometry"></span><span id="udQueryContext_Create__udContextP.udQueryContextPP.udPointCloudP.udGeometryCP"></span><span class="target" id="ud_query_context_8h_1a9878d3f9b106aaa360c7d40d14f597e4"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQueryContext_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> udQueryContext **<em>ppQueryCtx</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pPointCloud</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pFilter</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udQueryContext_CreateP9udContextPP14udQueryContextP12udPointCloudPK10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an instance of a udQueryContext with a specific model.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the udQueryContext creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>A future release will add multiple model support and non-storedMatrix locations. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to be used to create the query context. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppQueryCtx</span></code>: The pointer pointer of the udQueryContext. This will allocate an instance of udQueryContext into <code class="docutils literal notranslate"><span class="pre">ppQuery</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCloud</span></code>: The point cloud to run the query on, it is located at its storedMatrix location (this can be changed using udQueryContext_ChangePointCloud). </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilter</span></code>: The filter to use in this query (this can be changed using udQueryContext_ChangeFilter). </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udQueryContext_ChangeFilterP14udQueryContextPK10udGeometry">
<span id="_CPPv327udQueryContext_ChangeFilterP14udQueryContextPK10udGeometry"></span><span id="_CPPv227udQueryContext_ChangeFilterP14udQueryContextPK10udGeometry"></span><span id="udQueryContext_ChangeFilter__udQueryContextP.udGeometryCP"></span><span class="target" id="ud_query_context_8h_1a4a21f59e34b0f13ddacd9a7c0e7a2d0f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQueryContext_ChangeFilter</code><span class="sig-paren">(</span><em class="property">struct</em> udQueryContext *<em>pQueryCtx</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pFilter</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udQueryContext_ChangeFilterP14udQueryContextPK10udGeometry" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Resets the udQueryContext and uses a new filter.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the operation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This will reset the query, any existing progress will be lost. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pQueryCtx</span></code>: The udQueryContext item previously created using udQueryContext_Create. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilter</span></code>: The new filter to use in this query. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv431udQueryContext_ChangePointCloudP14udQueryContextPK12udPointCloud">
<span id="_CPPv331udQueryContext_ChangePointCloudP14udQueryContextPK12udPointCloud"></span><span id="_CPPv231udQueryContext_ChangePointCloudP14udQueryContextPK12udPointCloud"></span><span id="udQueryContext_ChangePointCloud__udQueryContextP.udPointCloudCP"></span><span class="target" id="ud_query_context_8h_1a6088fa407e45e36149f47b6260c6d0e4"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQueryContext_ChangePointCloud</code><span class="sig-paren">(</span><em class="property">struct</em> udQueryContext *<em>pQueryCtx</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udPointCloud" title="udPointCloud">udPointCloud</a> *<em>pPointCloud</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431udQueryContext_ChangePointCloudP14udQueryContextPK12udPointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Resets the udQueryContext and uses a different model.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the operation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This will reset the query, any existing progress will be lost. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pQueryCtx</span></code>: The udQueryContext item previously created using udQueryContext_Create. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointCloud</span></code>: The new model to use in this query. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udQueryContext_ExecuteF64P14udQueryContextP16udPointBufferF64">
<span id="_CPPv325udQueryContext_ExecuteF64P14udQueryContextP16udPointBufferF64"></span><span id="_CPPv225udQueryContext_ExecuteF64P14udQueryContextP16udPointBufferF64"></span><span id="udQueryContext_ExecuteF64__udQueryContextP.udPointBufferF64P"></span><span class="target" id="ud_query_context_8h_1a1481bf74531200e30404adb25f932302"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQueryContext_ExecuteF64</code><span class="sig-paren">(</span><em class="property">struct</em> udQueryContext *<em>pQueryCtx</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferF64" title="udPointBufferF64">udPointBufferF64</a> *<em>pPointBuffer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udQueryContext_ExecuteF64P14udQueryContextP16udPointBufferF64" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the next set of points from an existing udQueryContext.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the operation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This should continue to be called until it returns udE_NotFound indicating the query has completed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pQueryCtx</span></code>: The udQueryContext to execute. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointBuffer</span></code>: The point buffer to write found points to. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udQueryContext_ExecuteI64P14udQueryContextP16udPointBufferI64">
<span id="_CPPv325udQueryContext_ExecuteI64P14udQueryContextP16udPointBufferI64"></span><span id="_CPPv225udQueryContext_ExecuteI64P14udQueryContextP16udPointBufferI64"></span><span id="udQueryContext_ExecuteI64__udQueryContextP.udPointBufferI64P"></span><span class="target" id="ud_query_context_8h_1a52f7216469b8469d10840914e4ef493f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQueryContext_ExecuteI64</code><span class="sig-paren">(</span><em class="property">struct</em> udQueryContext *<em>pQueryCtx</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udPointBufferI64" title="udPointBufferI64">udPointBufferI64</a> *<em>pPointBuffer</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udQueryContext_ExecuteI64P14udQueryContextP16udPointBufferI64" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the next set of points from an existing udQueryContext.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the operation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This should continue to be called until it returns udE_NotFound indicating the query has completed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pQueryCtx</span></code>: The udQueryContext to execute. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPointBuffer</span></code>: The point buffer to write found points to. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udQueryContext_DestroyPP14udQueryContext">
<span id="_CPPv322udQueryContext_DestroyPP14udQueryContext"></span><span id="_CPPv222udQueryContext_DestroyPP14udQueryContext"></span><span id="udQueryContext_Destroy__udQueryContextPP"></span><span class="target" id="ud_query_context_8h_1a903b97d9d72eca9cfce5745403addd32"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQueryContext_Destroy</code><span class="sig-paren">(</span><em class="property">struct</em> udQueryContext **<em>ppQueryCtx</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udQueryContext_DestroyPP14udQueryContext" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroy the instance of udQueryContext.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the udQueryContext destruction. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppQueryCtx</span></code>: The pointer pointer of the udQueryContext. This will destroy the instance of udQueryContext in <code class="docutils literal notranslate"><span class="pre">ppQuery</span></code> and set it to NULL. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udQuery_TestRenderVoxelP10udGeometryAL16E_dPv">
<span id="_CPPv323udQuery_TestRenderVoxelP10udGeometryAL16E_dPv"></span><span id="_CPPv223udQuery_TestRenderVoxelP10udGeometryA16_dPv"></span><span id="udQuery_TestRenderVoxel__udGeometryP.doubleA.voidP"></span><span class="target" id="ud_query_context_8h_1ab2d4a2bf2ea64bd5a7a10142b7cd0fb1"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udQuery_TestRenderVoxel</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<em>pQueryFilter</em>, double <em>matrix</em>[16], void *<em>pRenderInfo</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udQuery_TestRenderVoxelP10udGeometryAL16E_dPv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Test the specified voxel against the given udQueryFilter.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the test. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pQueryFilter</span></code>: The udQueryFilter to test. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">matrix</span></code>: The scene matrix for the model that contains the voxel being rendered. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pRenderInfo</span></code>: The render info of the voxel being rendered. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
</section>
<section id="udgeoprojection">
<h3>udGeoProjection<a class="headerlink" href="#udgeoprojection" title="Permalink to this headline">¶</a></h3>
<p>udGeoProjection.h provides a udSDK wrapper for udGeoZone </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv433udGeoProjection_LoadZonesFromJSONPKcPiPi">
<span id="_CPPv333udGeoProjection_LoadZonesFromJSONPKcPiPi"></span><span id="_CPPv233udGeoProjection_LoadZonesFromJSONPKcPiPi"></span><span id="udGeoProjection_LoadZonesFromJSON__cCP.iP.iP"></span><span class="target" id="ud_geo_projection_8h_1a557a786f689faba7879601d327f83a41"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeoProjection_LoadZonesFromJSON</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pJSONStr</em>, int *<em>pLoaded</em>, int *<em>pFailed</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433udGeoProjection_LoadZonesFromJSONPKcPiPi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Loads a set of zones from a JSON file where each member is defined as “AUTHORITY:SRID” (eg. “EPSG:32756”)</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>udGeoProjection_UnloadZones needs to be called to free loaded zones. This function can be called multiple times to load more zones </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pJSONStr</span></code>: A pointer to a JSON string that contains the new zones to load </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pLoaded</span></code>: [optional] </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFailed</span></code>: The name of the application using udSDK. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udGeoProjection_UnloadZonesv">
<span id="_CPPv327udGeoProjection_UnloadZonesv"></span><span id="_CPPv227udGeoProjection_UnloadZonesv"></span><span id="udGeoProjection_UnloadZones"></span><span class="target" id="ud_geo_projection_8h_1a0efaea154e29a01c299cf86b10ac6d47"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udGeoProjection_UnloadZones</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udGeoProjection_UnloadZonesv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Unloads all loaded zones (only needs to be called once to unload all previously loaded zones from udGeoProjection_LoadZonesFromJSON) </p>
</dd></dl>

</div>
</section>
<section id="udmeshing">
<h3>udMeshing<a class="headerlink" href="#udmeshing" title="Permalink to this headline">¶</a></h3>
<p>udCompare.h provides an interface to create meshes from Unlimited Detail models. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Typedefs</p>
<dl class="type">
<dt>
<span class="target" id="ud_meshing_8h_1a9752a88497628e47b459d203f22484dc"></span><em class="property">typedef </em><code class="sig-name descname">void() udCompareOnWriteMeshCleanup(void **pData)</code></dt>
<dd></dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt>
<span class="target" id="ud_meshing_8h_1a98002799f03027e0c0a9e583bf6a24f8"></span><code class="sig-name descname">enum udError() udCompareOnWriteMeshCallback(const char * pOutputName, void * pData)</code></dt>
<dd></dd></dl>

<dl class="function">
<dt id="_CPPv417udMeshing_BPAMeshP9udContextP19udMeshingBPAOptionsP18udMeshingBPAStatus">
<span id="_CPPv317udMeshing_BPAMeshP9udContextP19udMeshingBPAOptionsP18udMeshingBPAStatus"></span><span id="_CPPv217udMeshing_BPAMeshP9udContextP19udMeshingBPAOptionsP18udMeshingBPAStatus"></span><span id="udMeshing_BPAMesh__udContextP.udMeshingBPAOptionsP.udMeshingBPAStatusP"></span><span class="target" id="ud_meshing_8h_1ad178df5c3390f6b9d120fe3a43d15752"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udMeshing_BPAMesh</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv419udMeshingBPAOptions" title="udMeshingBPAOptions">udMeshingBPAOptions</a> *<em>pOptions</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv418udMeshingBPAStatus" title="udMeshingBPAStatus">udMeshingBPAStatus</a> *<em>pStatus</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udMeshing_BPAMeshP9udContextP19udMeshingBPAOptionsP18udMeshingBPAStatus" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Meshes a model using the BPA algorithm.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of performing BPA on the input model. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This function begins the meshing process to write to obj, the pObjOutputPath option must not be NULL </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The UD context to be used to compare the models. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pOptions</span></code>: The parameters passed to the BPA algorithm </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pStatus</span></code>: Pointer to the struct to which write the algorithm progress. May be NULL </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udMeshing_BPACancelMeshingP19udMeshingBPAOptions">
<span id="_CPPv326udMeshing_BPACancelMeshingP19udMeshingBPAOptions"></span><span id="_CPPv226udMeshing_BPACancelMeshingP19udMeshingBPAOptions"></span><span id="udMeshing_BPACancelMeshing__udMeshingBPAOptionsP"></span><span class="target" id="ud_meshing_8h_1a9867911839798c64a5a9c7e25b697127"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udMeshing_BPACancelMeshing</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udMeshingBPAOptions" title="udMeshingBPAOptions">udMeshingBPAOptions</a> *<em>pOptions</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udMeshing_BPACancelMeshingP19udMeshingBPAOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Cancels a BPA meshing job started with pOptions</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of cancelling the job </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pOptions</span></code>: The parameters passed to the BPA algorithm </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv419udMeshingBPAOptions">
<span id="_CPPv319udMeshingBPAOptions"></span><span id="_CPPv219udMeshingBPAOptions"></span><span id="udMeshingBPAOptions"></span><span class="target" id="structud_meshing_b_p_a_options"></span><em class="property">struct </em><code class="sig-name descname">udMeshingBPAOptions</code><a class="headerlink" href="#_CPPv419udMeshingBPAOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMeshing.h&gt;</em><p>Contains the options for the meshing algorithm </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions14pBaseModelPathE">
<span id="_CPPv3N19udMeshingBPAOptions14pBaseModelPathE"></span><span id="_CPPv2N19udMeshingBPAOptions14pBaseModelPathE"></span><span id="udMeshingBPAOptions::pBaseModelPath__cCP"></span><span class="target" id="structud_meshing_b_p_a_options_1a2805e1bd7f6e9f15eaf50f6952c62a0c"></span><em class="property">const</em> char *<code class="sig-name descname">pBaseModelPath</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions14pBaseModelPathE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions14pObjOutputPathE">
<span id="_CPPv3N19udMeshingBPAOptions14pObjOutputPathE"></span><span id="_CPPv2N19udMeshingBPAOptions14pObjOutputPathE"></span><span id="udMeshingBPAOptions::pObjOutputPath__cCP"></span><span class="target" id="structud_meshing_b_p_a_options_1af6af3aed3bf01d52cd77b452f7a03ea1"></span><em class="property">const</em> char *<code class="sig-name descname">pObjOutputPath</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions14pObjOutputPathE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The path to the UDS model to be meshed. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions15writeOBJColoursE">
<span id="_CPPv3N19udMeshingBPAOptions15writeOBJColoursE"></span><span id="_CPPv2N19udMeshingBPAOptions15writeOBJColoursE"></span><span id="udMeshingBPAOptions::writeOBJColours__uint32_t"></span><span class="target" id="structud_meshing_b_p_a_options_1ae7d22937348a08652c7fa2f93b53dbe8"></span>uint32_t <code class="sig-name descname">writeOBJColours</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions15writeOBJColoursE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The directory to which intermediate obj meshes generated by the BPA algorithm will be written to. Must not be NULL when running standalone BPA algorithm. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions14writeSingleOBJE">
<span id="_CPPv3N19udMeshingBPAOptions14writeSingleOBJE"></span><span id="_CPPv2N19udMeshingBPAOptions14writeSingleOBJE"></span><span id="udMeshingBPAOptions::writeSingleOBJ__uint32_t"></span><span class="target" id="structud_meshing_b_p_a_options_1aad4715b1e7562462d232314de6fbb9a9"></span>uint32_t <code class="sig-name descname">writeSingleOBJ</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions14writeSingleOBJE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0 write objs with vertex colours taken from their source points. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions14pSingleObjNameE">
<span id="_CPPv3N19udMeshingBPAOptions14pSingleObjNameE"></span><span id="_CPPv2N19udMeshingBPAOptions14pSingleObjNameE"></span><span id="udMeshingBPAOptions::pSingleObjName__cCP"></span><span class="target" id="structud_meshing_b_p_a_options_1a6fc878fe3712d3b07d176c532431260e"></span><em class="property">const</em> char *<code class="sig-name descname">pSingleObjName</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions14pSingleObjNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If not 0 writes the output as a single obj - this may cause a failure for large inputs due to high memory usage. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions11mergeLevelsE">
<span id="_CPPv3N19udMeshingBPAOptions11mergeLevelsE"></span><span id="_CPPv2N19udMeshingBPAOptions11mergeLevelsE"></span><span id="udMeshingBPAOptions::mergeLevels__uint32_t"></span><span class="target" id="structud_meshing_b_p_a_options_1ac0597cf31634bb4757f977a766177e82"></span>uint32_t <code class="sig-name descname">mergeLevels</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions11mergeLevelsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The name to give a single output obj, if writeSingleOBJ is set (NULL for UUID) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions12globalOffsetE">
<span id="_CPPv3N19udMeshingBPAOptions12globalOffsetE"></span><span id="_CPPv2N19udMeshingBPAOptions12globalOffsetE"></span><span id="udMeshingBPAOptions::globalOffset__doubleA"></span><span class="target" id="structud_meshing_b_p_a_options_1ae3ca9515ca2766cdd2d1a1d02eb318d3"></span>double <code class="sig-name descname">globalOffset</code>[3]<a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions12globalOffsetE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If set grid cubes are merged into larger OBJs when written - increasing this value by 1 will multiply the size of output OBJs by a factor of 8. This setting is overwritten if writeSingleOBJ is set. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions10ballRadiusE">
<span id="_CPPv3N19udMeshingBPAOptions10ballRadiusE"></span><span id="_CPPv2N19udMeshingBPAOptions10ballRadiusE"></span><span id="udMeshingBPAOptions::ballRadius__double"></span><span class="target" id="structud_meshing_b_p_a_options_1a5ff4d1c7b0a9738adb5666d6eee3b75f"></span>double <code class="sig-name descname">ballRadius</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions10ballRadiusE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>apply a global offset to the vertices when writing an OBJ </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions8gridSizeE">
<span id="_CPPv3N19udMeshingBPAOptions8gridSizeE"></span><span id="_CPPv2N19udMeshingBPAOptions8gridSizeE"></span><span id="udMeshingBPAOptions::gridSize__double"></span><span class="target" id="structud_meshing_b_p_a_options_1a1421ea4ac4421d19c4c3b9cb1cc4b795"></span>double <code class="sig-name descname">gridSize</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions8gridSizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The radius of the ball used in the BPA algorithm. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions17maxGridPointCountE">
<span id="_CPPv3N19udMeshingBPAOptions17maxGridPointCountE"></span><span id="_CPPv2N19udMeshingBPAOptions17maxGridPointCountE"></span><span id="udMeshingBPAOptions::maxGridPointCount__uint32_t"></span><span class="target" id="structud_meshing_b_p_a_options_1a3d8dbd54956593b260728cf377b6dbad"></span>uint32_t <code class="sig-name descname">maxGridPointCount</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions17maxGridPointCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The maximum size of each cube to be processed independantly by the BPA algorithm. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions9pGeometryE">
<span id="_CPPv3N19udMeshingBPAOptions9pGeometryE"></span><span id="_CPPv2N19udMeshingBPAOptions9pGeometryE"></span><span id="udMeshingBPAOptions::pGeometry__udGeometryP"></span><span class="target" id="structud_meshing_b_p_a_options_1a4112ddcf753fd5ab24ba2aae3f6aa377"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv410udGeometry" title="udGeometry">udGeometry</a> *<code class="sig-name descname">pGeometry</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions9pGeometryE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The maximum number of grid points in a grid, if exceeded in a grid cube the grid will be subdivided. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions9pCallbackE">
<span id="_CPPv3N19udMeshingBPAOptions9pCallbackE"></span><span id="_CPPv2N19udMeshingBPAOptions9pCallbackE"></span><span id="udMeshingBPAOptions::pCallback__udCompareOnWriteMeshCallbackP"></span><span class="target" id="structud_meshing_b_p_a_options_1a43e008e9fd6acd51864a3e70cd17cbb7"></span>udCompareOnWriteMeshCallback *<code class="sig-name descname">pCallback</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions9pCallbackE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions5pDataE">
<span id="_CPPv3N19udMeshingBPAOptions5pDataE"></span><span id="_CPPv2N19udMeshingBPAOptions5pDataE"></span><span id="udMeshingBPAOptions::pData__voidP"></span><span class="target" id="structud_meshing_b_p_a_options_1af151b3dd4f881abbc50119bad245a663"></span>void *<code class="sig-name descname">pData</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions5pDataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>callback to be run on each mesh written (one for each grid), may be NULL </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions8pCleanupE">
<span id="_CPPv3N19udMeshingBPAOptions8pCleanupE"></span><span id="_CPPv2N19udMeshingBPAOptions8pCleanupE"></span><span id="udMeshingBPAOptions::pCleanup__udCompareOnWriteMeshCleanupP"></span><span class="target" id="structud_meshing_b_p_a_options_1add7eaf60b08f6654025a3f32ab99a667"></span>udCompareOnWriteMeshCleanup *<code class="sig-name descname">pCleanup</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions8pCleanupE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>data to be passed to pCallback, may be NULL </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions11onWriteMeshE">
<span id="_CPPv3N19udMeshingBPAOptions11onWriteMeshE"></span><span id="_CPPv2N19udMeshingBPAOptions11onWriteMeshE"></span><span class="target" id="structud_meshing_b_p_a_options_1a6c3a9e72785f569fdadea2fbbe096835"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udMeshingBPAOptions" title="udMeshingBPAOptions">udMeshingBPAOptions</a>::<strong>[anonymous]</strong> <code class="sig-name descname">onWriteMesh</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions11onWriteMeshE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The geometry filter to restrict the BPA algorithm to, NULL to process whole model. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udMeshingBPAOptions9pReservedE">
<span id="_CPPv3N19udMeshingBPAOptions9pReservedE"></span><span id="_CPPv2N19udMeshingBPAOptions9pReservedE"></span><span id="udMeshingBPAOptions::pReserved__voidP"></span><span class="target" id="structud_meshing_b_p_a_options_1a4a10d32290c508fb50e3162c47730977"></span>void *<code class="sig-name descname">pReserved</code><a class="headerlink" href="#_CPPv4N19udMeshingBPAOptions9pReservedE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv418udMeshingBPAStatus">
<span id="_CPPv318udMeshingBPAStatus"></span><span id="_CPPv218udMeshingBPAStatus"></span><span id="udMeshingBPAStatus"></span><span class="target" id="structud_meshing_b_p_a_status"></span><em class="property">struct </em><code class="sig-name descname">udMeshingBPAStatus</code><a class="headerlink" href="#_CPPv418udMeshingBPAStatus" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udMeshing.h&gt;</em><p>Stores the internal state of the meshing process </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N18udMeshingBPAStatus6nGridsE">
<span id="_CPPv3N18udMeshingBPAStatus6nGridsE"></span><span id="_CPPv2N18udMeshingBPAStatus6nGridsE"></span><span id="udMeshingBPAStatus::nGrids__uint64_t"></span><span class="target" id="structud_meshing_b_p_a_status_1a9e221a47dc095be545c47b6846707a4f"></span>uint64_t <code class="sig-name descname">nGrids</code><a class="headerlink" href="#_CPPv4N18udMeshingBPAStatus6nGridsE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N18udMeshingBPAStatus10nCompletedE">
<span id="_CPPv3N18udMeshingBPAStatus10nCompletedE"></span><span id="_CPPv2N18udMeshingBPAStatus10nCompletedE"></span><span id="udMeshingBPAStatus::nCompleted__uint64_t"></span><span class="target" id="structud_meshing_b_p_a_status_1a26a026193364e07895dbf585d3dd3fda"></span>uint64_t <code class="sig-name descname">nCompleted</code><a class="headerlink" href="#_CPPv4N18udMeshingBPAStatus10nCompletedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The total number of grids to be processed. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N18udMeshingBPAStatus7runningE">
<span id="_CPPv3N18udMeshingBPAStatus7runningE"></span><span id="_CPPv2N18udMeshingBPAStatus7runningE"></span><span id="udMeshingBPAStatus::running__uint64_t"></span><span class="target" id="structud_meshing_b_p_a_status_1a61b85c9e789e621bc3d2b4e3904fcf4f"></span>uint64_t <code class="sig-name descname">running</code><a class="headerlink" href="#_CPPv4N18udMeshingBPAStatus7runningE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The total number of grids that have been processed. </p>
</dd></dl>

</div>
</dd></dl>

</section>
</section>
<section id="loading-and-using-udsdk-scenes">
<h2>Loading and using udSDK scenes<a class="headerlink" href="#loading-and-using-udsdk-scenes" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="_CPPv47udScene">
<span id="_CPPv37udScene"></span><span id="_CPPv27udScene"></span><span id="udScene"></span><span class="target" id="structud_scene"></span><em class="property">struct </em><code class="sig-name descname">udScene</code><a class="headerlink" href="#_CPPv47udScene" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Stores the internal state of the project </p>
</dd></dl>

<p>The <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> and <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> objects provide an interface for storing and syncronising geolocated projects between udSDK sessions <dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The GeoJSON provided by this implementation is not fully compliant with RFC7946 </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>Antimeridian Cutting (Section 3.1.9) and handling the poles (Secion 5.3) are not fully working in this implementation </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>This module does not currently expose the functionality to sync with the server. This will be added in a future release. </p>
</dd>
</dl>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv419udSceneGeometryType">
<span id="_CPPv319udSceneGeometryType"></span><span id="_CPPv219udSceneGeometryType"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3"></span><em class="property">enum </em><code class="sig-name descname">udSceneGeometryType</code><a class="headerlink" href="#_CPPv419udSceneGeometryType" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the geometry types for nodes </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv410udPGT_None">
<span id="_CPPv310udPGT_None"></span><span id="_CPPv210udPGT_None"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a6f9b9389db2c006589777f03efa6a3dd"></span><code class="sig-name descname">udPGT_None</code><a class="headerlink" href="#_CPPv410udPGT_None" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There is no geometry associated with this node. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udPGT_Point">
<span id="_CPPv311udPGT_Point"></span><span id="_CPPv211udPGT_Point"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a73f06d12bc3b139087d16e57eaaafd0d"></span><code class="sig-name descname">udPGT_Point</code><a class="headerlink" href="#_CPPv411udPGT_Point" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>pCoordinates is a single 3D position </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udPGT_MultiPoint">
<span id="_CPPv316udPGT_MultiPoint"></span><span id="_CPPv216udPGT_MultiPoint"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a0cd1a20b18e6b7322ba4beba1d73a6bd"></span><code class="sig-name descname">udPGT_MultiPoint</code><a class="headerlink" href="#_CPPv416udPGT_MultiPoint" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Array of udPGT_Point, pCoordinates is an array of 3D positions. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udPGT_LineString">
<span id="_CPPv316udPGT_LineString"></span><span id="_CPPv216udPGT_LineString"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a0b5d2534883180f2a6f6dd27dc704ee8"></span><code class="sig-name descname">udPGT_LineString</code><a class="headerlink" href="#_CPPv416udPGT_LineString" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>pCoordinates is an array of 3D positions forming an open line </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udPGT_MultiLineString">
<span id="_CPPv321udPGT_MultiLineString"></span><span id="_CPPv221udPGT_MultiLineString"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a508975edd8a8cdb661647debe926c891"></span><code class="sig-name descname">udPGT_MultiLineString</code><a class="headerlink" href="#_CPPv421udPGT_MultiLineString" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Array of udPGT_LineString; pCoordinates is NULL and children will be present. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udPGT_Polygon">
<span id="_CPPv313udPGT_Polygon"></span><span id="_CPPv213udPGT_Polygon"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3ae754e017bf2d6df7873e4bbeb73e7bac"></span><code class="sig-name descname">udPGT_Polygon</code><a class="headerlink" href="#_CPPv413udPGT_Polygon" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>pCoordinates will be a closed linear ring (the outside), there MAY be children that are interior as pChildren udPGT_MultiLineString items, these should be counted as islands of the external ring. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udPGT_MultiPolygon">
<span id="_CPPv318udPGT_MultiPolygon"></span><span id="_CPPv218udPGT_MultiPolygon"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3ae4155f139563d5f140d5aba20e4df16f"></span><code class="sig-name descname">udPGT_MultiPolygon</code><a class="headerlink" href="#_CPPv418udPGT_MultiPolygon" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>pCoordinates is null, children will be udPGT_Polygon (which still may have internal islands) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udPGT_GeometryCollection">
<span id="_CPPv324udPGT_GeometryCollection"></span><span id="_CPPv224udPGT_GeometryCollection"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a92e741ace5064bb6b85ac62b1eb3a97c"></span><code class="sig-name descname">udPGT_GeometryCollection</code><a class="headerlink" href="#_CPPv424udPGT_GeometryCollection" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Array of geometries; pCoordinates is NULL and children may be present of any type. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udPGT_Count">
<span id="_CPPv311udPGT_Count"></span><span id="_CPPv211udPGT_Count"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a8dc53c5fa7358994242b0d6c00373f53"></span><code class="sig-name descname">udPGT_Count</code><a class="headerlink" href="#_CPPv411udPGT_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of geometry types. Used internally but can be used as an iterator max when displaying different type modes. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udPGT_Internal">
<span id="_CPPv314udPGT_Internal"></span><span id="_CPPv214udPGT_Internal"></span><span class="target" id="ud_scene_8h_1a1a94d156ad6b51c91acd45d7742548c3a10d75baf5d906402cc015708a1b6be64"></span><code class="sig-name descname">udPGT_Internal</code><a class="headerlink" href="#_CPPv414udPGT_Internal" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Used internally when calculating other types. Do not use. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv415udSceneNodeType">
<span id="_CPPv315udSceneNodeType"></span><span id="_CPPv215udSceneNodeType"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887c"></span><em class="property">enum </em><code class="sig-name descname">udSceneNodeType</code><a class="headerlink" href="#_CPPv415udSceneNodeType" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This represents the type of data stored in the node. <dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The <code class="docutils literal notranslate"><span class="pre">itemtypeStr</span></code> in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> is a string version. This enum serves to simplify the reading of standard types. The the string in brackets at the end of the comment is the string. </p>
</dd>
</dl>
</p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv412udPNT_Custom">
<span id="_CPPv312udPNT_Custom"></span><span id="_CPPv212udPNT_Custom"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca4a102a87c3c35959421e2e7ac1a3bc06"></span><code class="sig-name descname">udPNT_Custom</code><a class="headerlink" href="#_CPPv412udPNT_Custom" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Need to check the itemtypeStr string manually. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udPNT_PointCloud">
<span id="_CPPv316udPNT_PointCloud"></span><span id="_CPPv216udPNT_PointCloud"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca91fd60298fcf548faf4ad871276310c9"></span><code class="sig-name descname">udPNT_PointCloud</code><a class="headerlink" href="#_CPPv416udPNT_PointCloud" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A Euclideon Unlimited Detail Point Cloud file (“UDS”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udPNT_PointOfInterest">
<span id="_CPPv321udPNT_PointOfInterest"></span><span id="_CPPv221udPNT_PointOfInterest"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887cadc45011748637312fbdbc84f1fa23d7b"></span><code class="sig-name descname">udPNT_PointOfInterest</code><a class="headerlink" href="#_CPPv421udPNT_PointOfInterest" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A point, line or region describing a location of interest (“POI”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udPNT_Folder">
<span id="_CPPv312udPNT_Folder"></span><span id="_CPPv212udPNT_Folder"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887cacadf7753130ca9270074922b0059b72b"></span><code class="sig-name descname">udPNT_Folder</code><a class="headerlink" href="#_CPPv412udPNT_Folder" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A folder of other nodes (“Folder”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udPNT_Media">
<span id="_CPPv311udPNT_Media"></span><span id="_CPPv211udPNT_Media"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca2adaa5f0b9afdd3d8e4bab53504e0a85"></span><code class="sig-name descname">udPNT_Media</code><a class="headerlink" href="#_CPPv411udPNT_Media" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An Image, Movie, Audio file or other media object (“Media”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udPNT_Viewpoint">
<span id="_CPPv315udPNT_Viewpoint"></span><span id="_CPPv215udPNT_Viewpoint"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca30417c10883153186d884834de5ec320"></span><code class="sig-name descname">udPNT_Viewpoint</code><a class="headerlink" href="#_CPPv415udPNT_Viewpoint" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An Camera Location &amp; Orientation (“Camera”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv427udPNT_VisualisationSettings">
<span id="_CPPv327udPNT_VisualisationSettings"></span><span id="_CPPv227udPNT_VisualisationSettings"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca41e0ae27d22cf4ad57559a0f29b98338"></span><code class="sig-name descname">udPNT_VisualisationSettings</code><a class="headerlink" href="#_CPPv427udPNT_VisualisationSettings" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Visualisation settings (itensity, map height etc) (“VizSet”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udPNT_I3S">
<span id="_CPPv39udPNT_I3S"></span><span id="_CPPv29udPNT_I3S"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887cad83d9ff4257eee26bd1e47b0ea532f81"></span><code class="sig-name descname">udPNT_I3S</code><a class="headerlink" href="#_CPPv49udPNT_I3S" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An Indexed 3d Scene Layer (I3S) or Scene Layer Package (SLPK) dataset (“I3S”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udPNT_Water">
<span id="_CPPv311udPNT_Water"></span><span id="_CPPv211udPNT_Water"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca8427abf330e9be6e2175fc30c5a99c0d"></span><code class="sig-name descname">udPNT_Water</code><a class="headerlink" href="#_CPPv411udPNT_Water" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A region describing the location of a body of water (“Water”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udPNT_ViewShed">
<span id="_CPPv314udPNT_ViewShed"></span><span id="_CPPv214udPNT_ViewShed"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca27e014a711f192e4585d20db549f9c14"></span><code class="sig-name descname">udPNT_ViewShed</code><a class="headerlink" href="#_CPPv414udPNT_ViewShed" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A point describing where to generate a view shed from (“ViewMap”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udPNT_Polygon">
<span id="_CPPv313udPNT_Polygon"></span><span id="_CPPv213udPNT_Polygon"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca56ac813a71d9e9da9ee53282b990231c"></span><code class="sig-name descname">udPNT_Polygon</code><a class="headerlink" href="#_CPPv413udPNT_Polygon" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A polygon model, usually an OBJ or FBX (“Polygon”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udPNT_QueryFilter">
<span id="_CPPv317udPNT_QueryFilter"></span><span id="_CPPv217udPNT_QueryFilter"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887cac1293cdd58f81e366b953974f6fd08aa"></span><code class="sig-name descname">udPNT_QueryFilter</code><a class="headerlink" href="#_CPPv417udPNT_QueryFilter" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A query filter to be applied to all PointCloud types in the scene (“QFilter”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udPNT_Places">
<span id="_CPPv312udPNT_Places"></span><span id="_CPPv212udPNT_Places"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca0c3324bb75cf6c377c65c3741d716903"></span><code class="sig-name descname">udPNT_Places</code><a class="headerlink" href="#_CPPv412udPNT_Places" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A collection of places that can be grouped together at a distance (“Places”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv423udPNT_HeightMeasurement">
<span id="_CPPv323udPNT_HeightMeasurement"></span><span id="_CPPv223udPNT_HeightMeasurement"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887caaf47d839ef4a77324e2ae0670b9b1572"></span><code class="sig-name descname">udPNT_HeightMeasurement</code><a class="headerlink" href="#_CPPv423udPNT_HeightMeasurement" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A height measurement object (“MHeight”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv410udPNT_GTFS">
<span id="_CPPv310udPNT_GTFS"></span><span id="_CPPv210udPNT_GTFS"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887caa3b1d9db89887a087b62cf4e643fbc29"></span><code class="sig-name descname">udPNT_GTFS</code><a class="headerlink" href="#_CPPv410udPNT_GTFS" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A General Transit Feed Specification object (“GTFS”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udPNT_LassoNode">
<span id="_CPPv315udPNT_LassoNode"></span><span id="_CPPv215udPNT_LassoNode"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca3c25526f347a543604c17e6942e75df3"></span><code class="sig-name descname">udPNT_LassoNode</code><a class="headerlink" href="#_CPPv415udPNT_LassoNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A Lasso Selection Folder (“LNode”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udPNT_QueryGroup">
<span id="_CPPv316udPNT_QueryGroup"></span><span id="_CPPv216udPNT_QueryGroup"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887ca34a9031d2fcd698364f01841d3eb34c4"></span><code class="sig-name descname">udPNT_QueryGroup</code><a class="headerlink" href="#_CPPv416udPNT_QueryGroup" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A Group of Query node being represented as one node (“QGroup”) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udPNT_Count">
<span id="_CPPv311udPNT_Count"></span><span id="_CPPv211udPNT_Count"></span><span class="target" id="ud_scene_8h_1a0fc281118f522e2d56e59be6829a887cae3390a2c559a73ebf0d88d862ffeb4dc"></span><code class="sig-name descname">udPNT_Count</code><a class="headerlink" href="#_CPPv411udPNT_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of node types. Used internally but can be used as an iterator max when displaying different type modes. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv415udSceneUserFlag">
<span id="_CPPv315udSceneUserFlag"></span><span id="_CPPv215udSceneUserFlag"></span><span class="target" id="ud_scene_8h_1a1ed58f9d6e7669084cbbc8f839449e89"></span><em class="property">enum </em><code class="sig-name descname">udSceneUserFlag</code><a class="headerlink" href="#_CPPv415udSceneUserFlag" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This represents the flags for scene users </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv424udSceneUserFlag_HasHands">
<span id="_CPPv324udSceneUserFlag_HasHands"></span><span id="_CPPv224udSceneUserFlag_HasHands"></span><span class="target" id="ud_scene_8h_1a1ed58f9d6e7669084cbbc8f839449e89a37ba7cb741fb771b7026e06a2b2f3242"></span><code class="sig-name descname">udSceneUserFlag_HasHands</code> = 1<a class="headerlink" href="#_CPPv424udSceneUserFlag_HasHands" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User has hands. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv433udSceneUserFlag_HasAnchorAndScale">
<span id="_CPPv333udSceneUserFlag_HasAnchorAndScale"></span><span id="_CPPv233udSceneUserFlag_HasAnchorAndScale"></span><span class="target" id="ud_scene_8h_1a1ed58f9d6e7669084cbbc8f839449e89af6a532b16eaa061c6d144244173aa57d"></span><code class="sig-name descname">udSceneUserFlag_HasAnchorAndScale</code> = 2<a class="headerlink" href="#_CPPv433udSceneUserFlag_HasAnchorAndScale" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User has a world anchor point. This usually indicates they are using a VR Cave or Table. </p>
</dd></dl>

</dd></dl>

<dl class="enum">
<dt id="_CPPv417udSceneLoadSource">
<span id="_CPPv317udSceneLoadSource"></span><span id="_CPPv217udSceneLoadSource"></span><span class="target" id="ud_scene_8h_1a519fc1e4dc49fbae4482af03c20074a8"></span><em class="property">enum </em><code class="sig-name descname">udSceneLoadSource</code><a class="headerlink" href="#_CPPv417udSceneLoadSource" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This represents where the scene was loaded from/saved to most recently and where future calls to udScene_Save will go </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv424udSceneLoadSource_Memory">
<span id="_CPPv324udSceneLoadSource_Memory"></span><span id="_CPPv224udSceneLoadSource_Memory"></span><span class="target" id="ud_scene_8h_1a519fc1e4dc49fbae4482af03c20074a8aa9b53abfb2f30114781b11aa83994b31"></span><code class="sig-name descname">udSceneLoadSource_Memory</code><a class="headerlink" href="#_CPPv424udSceneLoadSource_Memory" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The scene source exists in memory; udScene_CreateInMemory, udScene_LoadFromMemory or udScene_SaveToMemory. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udSceneLoadSource_Server">
<span id="_CPPv324udSceneLoadSource_Server"></span><span id="_CPPv224udSceneLoadSource_Server"></span><span class="target" id="ud_scene_8h_1a519fc1e4dc49fbae4482af03c20074a8a697cd707b4b187978a81170a30ec5aba"></span><code class="sig-name descname">udSceneLoadSource_Server</code><a class="headerlink" href="#_CPPv424udSceneLoadSource_Server" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The scene source exists from the server; udScene_CreateInServer, udScene_LoadFromServer or udScene_SaveToServer. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udSceneLoadSource_URI">
<span id="_CPPv321udSceneLoadSource_URI"></span><span id="_CPPv221udSceneLoadSource_URI"></span><span class="target" id="ud_scene_8h_1a519fc1e4dc49fbae4482af03c20074a8a931e0958c5ba0967232d8cbf303456f6"></span><code class="sig-name descname">udSceneLoadSource_URI</code><a class="headerlink" href="#_CPPv421udSceneLoadSource_URI" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The scene source exists from a file or URL; udScene_CreateInFile, udScene_LoadFromFile or udScene_SaveToFile. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv423udSceneLoadSource_Count">
<span id="_CPPv323udSceneLoadSource_Count"></span><span id="_CPPv223udSceneLoadSource_Count"></span><span class="target" id="ud_scene_8h_1a519fc1e4dc49fbae4482af03c20074a8affb1231389b561ae644bbc7f93595115"></span><code class="sig-name descname">udSceneLoadSource_Count</code><a class="headerlink" href="#_CPPv423udSceneLoadSource_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Total number of source types. Used internally but can be used as an iterator max when displaying different source types. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv422udScene_CreateInMemoryP9udContextPP7udScenePKc">
<span id="_CPPv322udScene_CreateInMemoryP9udContextPP7udScenePKc"></span><span id="_CPPv222udScene_CreateInMemoryP9udContextPP7udScenePKc"></span><span id="udScene_CreateInMemory__udContextP.udScenePP.cCP"></span><span class="target" id="ud_scene_8h_1ad1da06946e2438f6802ce13042b9307a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_CreateInMemory</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em>, <em class="property">const</em> char *<em>pName</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udScene_CreateInMemoryP9udContextPP7udScenePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an empty, local only, instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to creae in memory </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> into <code class="docutils literal notranslate"><span class="pre">ppScene</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: The name of the scene, this will be the name of the root item. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udScene_CreateInFileP9udContextPP7udScenePKcPKc">
<span id="_CPPv320udScene_CreateInFileP9udContextPP7udScenePKcPKc"></span><span id="_CPPv220udScene_CreateInFileP9udContextPP7udScenePKcPKc"></span><span id="udScene_CreateInFile__udContextP.udScenePP.cCP.cCP"></span><span class="target" id="ud_scene_8h_1ae07aef6f465480978b9a0d02d87f1546"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_CreateInFile</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em>, <em class="property">const</em> char *<em>pName</em>, <em class="property">const</em> char *<em>pFilename</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udScene_CreateInFileP9udContextPP7udScenePKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an empty, local only, instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to create ina file </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> into <code class="docutils literal notranslate"><span class="pre">ppScene</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: The name of the project, this will be the name of the root item. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilename</span></code>: The path to create the project at. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udScene_CreateInServerP9udContextPP7udScenePKcPKc">
<span id="_CPPv322udScene_CreateInServerP9udContextPP7udScenePKcPKc"></span><span id="_CPPv222udScene_CreateInServerP9udContextPP7udScenePKcPKc"></span><span id="udScene_CreateInServer__udContextP.udScenePP.cCP.cCP"></span><span class="target" id="ud_scene_8h_1aa4a35b03e913b2b290d23b4fe279f737"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_CreateInServer</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em>, <em class="property">const</em> char *<em>pName</em>, <em class="property">const</em> char *<em>pGroupID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udScene_CreateInServerP9udContextPP7udScenePKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an empty project in the server and the local instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to load the project, read/write permissions will be based on the current session. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> into <code class="docutils literal notranslate"><span class="pre">ppScene</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: The name of the project, this will be the name of the root item. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGroupID</span></code>: The UUID of the group this project will belong to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udScene_LoadFromMemoryP9udContextPP7udScenePKc">
<span id="_CPPv322udScene_LoadFromMemoryP9udContextPP7udScenePKc"></span><span id="_CPPv222udScene_LoadFromMemoryP9udContextPP7udScenePKc"></span><span id="udScene_LoadFromMemory__udContextP.udScenePP.cCP"></span><span class="target" id="ud_scene_8h_1a43fb1609efb75433ec631d64e4d94b1a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_LoadFromMemory</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em>, <em class="property">const</em> char *<em>pGeoJSON</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udScene_LoadFromMemoryP9udContextPP7udScenePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a local only instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code> filled in with the contents of a GeoJSON string.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to load from memory </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> into <code class="docutils literal notranslate"><span class="pre">ppScene</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGeoJSON</span></code>: The GeoJSON string of the project, this will be unpacked into <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> items. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udScene_LoadFromFileP9udContextPP7udScenePKc">
<span id="_CPPv320udScene_LoadFromFileP9udContextPP7udScenePKc"></span><span id="_CPPv220udScene_LoadFromFileP9udContextPP7udScenePKc"></span><span id="udScene_LoadFromFile__udContextP.udScenePP.cCP"></span><span class="target" id="ud_scene_8h_1af2103104d00d434437fffb80b76fd622"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_LoadFromFile</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em>, <em class="property">const</em> char *<em>pFilename</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udScene_LoadFromFileP9udContextPP7udScenePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a local only instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code> filled in with the contents of the specified project file.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to load from a file </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> into <code class="docutils literal notranslate"><span class="pre">ppScene</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pFilename</span></code>: The project file URL. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udScene_LoadFromServerP9udContextPP7udScenePKcPKc">
<span id="_CPPv322udScene_LoadFromServerP9udContextPP7udScenePKcPKc"></span><span id="_CPPv222udScene_LoadFromServerP9udContextPP7udScenePKcPKc"></span><span id="udScene_LoadFromServer__udContextP.udScenePP.cCP.cCP"></span><span class="target" id="ud_scene_8h_1a6deb86f0db927ed2d2d89781210b3371"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_LoadFromServer</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em>, <em class="property">const</em> char *<em>pSceneUUID</em>, <em class="property">const</em> char *<em>pGroupID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udScene_LoadFromServerP9udContextPP7udScenePKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a local instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code> filled in from the server.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to load the project, read/write permissions will be based on the current session. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will allocate an instance of <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> into <code class="docutils literal notranslate"><span class="pre">ppScene</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSceneUUID</span></code>: The UUID for the project that is being requested </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGroupID</span></code>: The ID for the workspace/project for udCloud projects (null for udServer projects) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udScene_MergeScenesP9udContextP7udSceneP7udScene">
<span id="_CPPv319udScene_MergeScenesP9udContextP7udSceneP7udScene"></span><span id="_CPPv219udScene_MergeScenesP9udContextP7udSceneP7udScene"></span><span id="udScene_MergeScenes__udContextP.udSceneP.udSceneP"></span><span class="target" id="ud_scene_8h_1afaaaf3168f8e7b730363fd1bbba2b622"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_MergeScenes</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pSceneToMerge</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udScene_MergeScenesP9udContextP7udSceneP7udScene" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Update a local instance of <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code> by merging elements from another <code class="docutils literal notranslate"><a class="reference internal" href="#structud_scene"><span class="std std-ref"><span class="pre">udScene</span></span></a></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the merge. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>pSceneToMerge will be empty after this operation. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to load the project, read/write permissions will be based on the current session. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> to update. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSceneToMerge</span></code>: The pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> to merge its elements into previous <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv415udScene_ReleasePP7udScene">
<span id="_CPPv315udScene_ReleasePP7udScene"></span><span id="_CPPv215udScene_ReleasePP7udScene"></span><span id="udScene_Release__udScenePP"></span><span class="target" id="ud_scene_8h_1af8976ebbc4f058efaeff2c54d430baf0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_Release</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> **<em>ppScene</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415udScene_ReleasePP7udScene" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroy the instance of the project.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project destruction. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>The pUserData item should be already released from every node before calling this. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppScene</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. This will deallocate the instance of the project as well as destroying all nodes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv412udScene_SaveP7udScene">
<span id="_CPPv312udScene_SaveP7udScene"></span><span id="_CPPv212udScene_SaveP7udScene"></span><span id="udScene_Save__udSceneP"></span><span class="target" id="ud_scene_8h_1aa4c264c32e39bbedd69f333d0dfc21d7"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_Save</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv412udScene_SaveP7udScene" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Export a project to where it was loaded from (server or file).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project save </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> that will saved. This will fail immediately for projects loaded from memory </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv414udScene_UpdateP7udSceneP17udSceneUpdateInfo">
<span id="_CPPv314udScene_UpdateP7udSceneP17udSceneUpdateInfo"></span><span id="_CPPv214udScene_UpdateP7udSceneP17udSceneUpdateInfo"></span><span id="udScene_Update__udSceneP.udSceneUpdateInfoP"></span><span class="target" id="ud_scene_8h_1af3b05be2ff4a12920afd7c68d21395b0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_Update</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv417udSceneUpdateInfo" title="udSceneUpdateInfo">udSceneUpdateInfo</a> *<em>pUpdateInfo</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414udScene_UpdateP7udSceneP17udSceneUpdateInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Update a project to where it was loaded from (server or file).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project save </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> that will saved. This will fail immediately for projects loaded from memory </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pUpdateInfo</span></code>: The data that would be updated </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udScene_SaveToMemoryP9udContextP7udScenePPKc">
<span id="_CPPv320udScene_SaveToMemoryP9udContextP7udScenePPKc"></span><span id="_CPPv220udScene_SaveToMemoryP9udContextP7udScenePPKc"></span><span id="udScene_SaveToMemory__udContextP.udSceneP.cCPP"></span><span class="target" id="ud_scene_8h_1a5647d2e0dcc25feada1a755e57f34cc7"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_SaveToMemory</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char **<em>ppMemory</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udScene_SaveToMemoryP9udContextP7udScenePPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Export a project to a GeoJSON string in memory.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project export. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>The memory is stored in the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> and subsequent calls will destroy older versions, the buffer is released when the project is released. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to save the project to memory. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> that will be exported as GeoJSON. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppMemory</span></code>: The pointer pointer to a string that will contain the exported GeoJSON. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udScene_SaveToServerP9udContextP7udScenePKc">
<span id="_CPPv320udScene_SaveToServerP9udContextP7udScenePKc"></span><span id="_CPPv220udScene_SaveToServerP9udContextP7udScenePKc"></span><span id="udScene_SaveToServer__udContextP.udSceneP.cCP"></span><span class="target" id="ud_scene_8h_1a3b34dd4fde1c10e9a3fcdae0b5338e9a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_SaveToServer</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char *<em>pGroupID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udScene_SaveToServerP9udContextP7udScenePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an project in the server from an existing <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a></p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>pScene will point to the newly created project if this is successful </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to upload the project, write permissions will be based on the current session. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> to upload. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGroupID</span></code>: The UUID of the group this project will belong to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv418udScene_SaveToFileP9udContextP7udScenePKc">
<span id="_CPPv318udScene_SaveToFileP9udContextP7udScenePKc"></span><span id="_CPPv218udScene_SaveToFileP9udContextP7udScenePKc"></span><span id="udScene_SaveToFile__udContextP.udSceneP.cCP"></span><span class="target" id="ud_scene_8h_1ab591ca6205ab8b91c04d6b9c61c51359"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_SaveToFile</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char *<em>pPath</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udScene_SaveToFileP9udContextP7udScenePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create an project in the server from an existing <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a></p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the project creation. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>pScene will point to the newly created file if this is successful </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use to save the project to file. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> to save out. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pPath</span></code>: The new path to save the project to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udScene_GetProjectRootP7udScenePP11udSceneNode">
<span id="_CPPv322udScene_GetProjectRootP7udScenePP11udSceneNode"></span><span id="_CPPv222udScene_GetProjectRootP7udScenePP11udSceneNode"></span><span id="udScene_GetProjectRoot__udSceneP.udSceneNodePP"></span><span class="target" id="ud_scene_8h_1adc74434302c159f80084ce188c5270f2"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_GetProjectRoot</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> **<em>ppRootNode</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udScene_GetProjectRootP7udScenePP11udSceneNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the project root node.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the root node. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This node will always have itemtype of type udPNT_Folder and cannot (and will not) have sibling nodes. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The name of the project is the name of the returned root node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppRootNode</span></code>: The pointer pointer to a node that will contain the node. The node ownership still belongs to the pScene. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv422udScene_GetProjectUUIDP7udScenePPKc">
<span id="_CPPv322udScene_GetProjectUUIDP7udScenePPKc"></span><span id="_CPPv222udScene_GetProjectUUIDP7udScenePPKc"></span><span id="udScene_GetProjectUUID__udSceneP.cCPP"></span><span class="target" id="ud_scene_8h_1a4c09d97d8b6f9472bff9bb49927b774a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_GetProjectUUID</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char **<em>ppSceneUUID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udScene_GetProjectUUIDP7udScenePPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the project UUID (for server projects).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the root node. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>Returns udE_NotFound for non-server projects </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppSceneUUID</span></code>: The pointer pointer to memory that will contain the project UUID. The ownership still belongs to the pScene. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udScene_HasUnsavedChangesP7udScene">
<span id="_CPPv325udScene_HasUnsavedChangesP7udScene"></span><span id="_CPPv225udScene_HasUnsavedChangesP7udScene"></span><span id="udScene_HasUnsavedChanges__udSceneP"></span><span class="target" id="ud_scene_8h_1a5af292394e3fb57a46114d169c723da8"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_HasUnsavedChanges</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udScene_HasUnsavedChangesP7udScene" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the state of unsaved local changes</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>udE_Success if there a unsaved changes, udE_NotFound when no local changes exist and other udError values for errors </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udScene_GetLoadSourceP7udSceneP17udSceneLoadSource">
<span id="_CPPv321udScene_GetLoadSourceP7udSceneP17udSceneLoadSource"></span><span id="_CPPv221udScene_GetLoadSourceP7udSceneP17udSceneLoadSource"></span><span id="udScene_GetLoadSource__udSceneP.udSceneLoadSourceP"></span><span class="target" id="ud_scene_8h_1a79971704de311e05f5bb4e8236973a37"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_GetLoadSource</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv417udSceneLoadSource" title="udSceneLoadSource">udSceneLoadSource</a> *<em>pSource</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udScene_GetLoadSourceP7udSceneP17udSceneLoadSource" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the current source of a given <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a></p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>udE_Success if wrote source, error otherwise </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSource</span></code>: The pointer to memory to write the source of pScene to </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv418udSceneNode_CreateP7udScenePP11udSceneNodeP11udSceneNodePKcPKcPKcPv">
<span id="_CPPv318udSceneNode_CreateP7udScenePP11udSceneNodeP11udSceneNodePKcPKcPKcPv"></span><span id="_CPPv218udSceneNode_CreateP7udScenePP11udSceneNodeP11udSceneNodePKcPKcPKcPv"></span><span id="udSceneNode_Create__udSceneP.udSceneNodePP.udSceneNodeP.cCP.cCP.cCP.voidP"></span><span class="target" id="ud_scene_8h_1a47aaea4dfe7b3e5e2dfde6564349db47"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_Create</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> **<em>ppNode</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pParent</em>, <em class="property">const</em> char *<em>pType</em>, <em class="property">const</em> char *<em>pName</em>, <em class="property">const</em> char *<em>pURI</em>, void *<em>pUserData</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udSceneNode_CreateP7udScenePP11udSceneNodeP11udSceneNodePKcPKcPKcPv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a node in a project</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the node being created in the project. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppNode</span></code>: A pointer pointer to the node that will be created. This can be NULL if getting the node back isn’t required. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pParent</span></code>: The parent node of the item. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pType</span></code>: The string representing the type of the item. This can be a defined string provided by udScene_GetTypeName or a custom type. Cannot be NULL. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pName</span></code>: A human readable name for the item. If this item is NULL it will attempt to generate a name from the pURI or the pType strings. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pURI</span></code>: The URL, filename or other URI containing where to find this item. These should be absolute paths where applicable (preferably HTTPS) to ensure maximum interop with other packages. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pUserData</span></code>: A pointer to data provided by the application to store in the <code class="docutils literal notranslate"><span class="pre">pUserData</span></code> item in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udSceneNode_MoveChildP7udSceneP11udSceneNodeP11udSceneNodeP11udSceneNodeP11udSceneNode">
<span id="_CPPv321udSceneNode_MoveChildP7udSceneP11udSceneNodeP11udSceneNodeP11udSceneNodeP11udSceneNode"></span><span id="_CPPv221udSceneNode_MoveChildP7udSceneP11udSceneNodeP11udSceneNodeP11udSceneNodeP11udSceneNode"></span><span id="udSceneNode_MoveChild__udSceneP.udSceneNodeP.udSceneNodeP.udSceneNodeP.udSceneNodeP"></span><span class="target" id="ud_scene_8h_1a11d1832542c168695c05ca109ff3f1d5"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_MoveChild</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pCurrentParent</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNewParent</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pInsertBeforeChild</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udSceneNode_MoveChildP7udSceneP11udSceneNodeP11udSceneNodeP11udSceneNodeP11udSceneNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Move a node to reorder within the current parent or move to a different parent.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the move. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCurrentParent</span></code>: The current parent of pNode. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNewParent</span></code>: The intended new parent of pNode. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to move. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pInsertBeforeChild</span></code>: The node that will be after pNode after the move. Set as NULL to be the last child of pNewParent. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udSceneNode_RemoveChildP7udSceneP11udSceneNodeP11udSceneNode">
<span id="_CPPv323udSceneNode_RemoveChildP7udSceneP11udSceneNodeP11udSceneNode"></span><span id="_CPPv223udSceneNode_RemoveChildP7udSceneP11udSceneNodeP11udSceneNode"></span><span id="udSceneNode_RemoveChild__udSceneP.udSceneNodeP.udSceneNodeP"></span><span class="target" id="ud_scene_8h_1a113b00776c3d997be785e42c9ad10c19"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_RemoveChild</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pParentNode</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udSceneNode_RemoveChildP7udSceneP11udSceneNodeP11udSceneNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Remove a node from the project.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of removing the node. </p>
</dd>
<dt><strong>Warning</strong></dt><dd><p>Ensure that the pUserData point of pNode has been released before calling this. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pParentNode</span></code>: The parent of the node to be removed. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to remove from the project. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udSceneNode_SetNameP7udSceneP11udSceneNodePKc">
<span id="_CPPv319udSceneNode_SetNameP7udSceneP11udSceneNodePKc"></span><span id="_CPPv219udSceneNode_SetNameP7udSceneP11udSceneNodePKc"></span><span id="udSceneNode_SetName__udSceneP.udSceneNodeP.cCP"></span><span class="target" id="ud_scene_8h_1aa17dd5360c2edf58096e36e5824e35ba"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetName</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pNodeName</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udSceneNode_SetNameP7udSceneP11udSceneNodePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the human readable name of a node.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the name. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to change the name of. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNodeName</span></code>: The new name of the node. This is duplicated internally. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udSceneNode_SetVisibilityP11udSceneNodei">
<span id="_CPPv325udSceneNode_SetVisibilityP11udSceneNodei"></span><span id="_CPPv225udSceneNode_SetVisibilityP11udSceneNodei"></span><span id="udSceneNode_SetVisibility__udSceneNodeP.i"></span><span class="target" id="ud_scene_8h_1aeebb28203c5dd234edde77f71cd424ef"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetVisibility</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, int <em>visibility</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udSceneNode_SetVisibilityP11udSceneNodei" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the visibility of the node</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of updating the visibility. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to change the visibility. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">visibility</span></code>: The new visibility of the node (non-zero for visible). </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv418udSceneNode_SetURIP7udSceneP11udSceneNodePKc">
<span id="_CPPv318udSceneNode_SetURIP7udSceneP11udSceneNodePKc"></span><span id="_CPPv218udSceneNode_SetURIP7udSceneP11udSceneNodePKc"></span><span id="udSceneNode_SetURI__udSceneP.udSceneNodeP.cCP"></span><span class="target" id="ud_scene_8h_1a5fb3dc6bdf1ceed1f2c156f73d9e9366"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetURI</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pNodeURI</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418udSceneNode_SetURIP7udSceneP11udSceneNodePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the URI of a node.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the URI. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to change the name of. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNodeURI</span></code>: The new URI of the node. This is duplicated internally. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udSceneNode_SetBoundingBoxP7udSceneP11udSceneNodeAL6E_d">
<span id="_CPPv326udSceneNode_SetBoundingBoxP7udSceneP11udSceneNodeAL6E_d"></span><span id="_CPPv226udSceneNode_SetBoundingBoxP7udSceneP11udSceneNodeA6_d"></span><span id="udSceneNode_SetBoundingBox__udSceneP.udSceneNodeP.doubleA"></span><span class="target" id="ud_scene_8h_1a171b5be04153f7449176b486e12ef92a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetBoundingBox</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, double <em>boundingBox</em>[6]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udSceneNode_SetBoundingBoxP7udSceneP11udSceneNodeAL6E_d" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a bounding box for the node.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the bounding box. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to change the bounding box of. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">boundingBox</span></code>: An array of doubles representing the bounds of the node, ordered as [West, South, Floor, East, North, Ceiling] </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv423udSceneNode_SetGeometryP7udSceneP11udSceneNode19udSceneGeometryTypeiPd">
<span id="_CPPv323udSceneNode_SetGeometryP7udSceneP11udSceneNode19udSceneGeometryTypeiPd"></span><span id="_CPPv223udSceneNode_SetGeometryP7udSceneP11udSceneNode19udSceneGeometryTypeiPd"></span><span id="udSceneNode_SetGeometry__udSceneP.udSceneNodeP.udSceneGeometryType.i.doubleP"></span><span class="target" id="ud_scene_8h_1a61abba00b3417e56aa3dd806ce4275c6"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetGeometry</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">enum</em> <a class="reference internal" href="#_CPPv419udSceneGeometryType" title="udSceneGeometryType">udSceneGeometryType</a> <em>nodeType</em>, int <em>geometryCount</em>, double *<em>pCoordinates</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423udSceneNode_SetGeometryP7udSceneP11udSceneNode19udSceneGeometryTypeiPd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the new geometry of a node.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting the geometry. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to change the geometry of. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">nodeType</span></code>: The new type of the geometry </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">geometryCount</span></code>: How many coordinates are being added </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCoordinates</span></code>: A pointer to the new coordinates (this is an array that should be 3x the length of geometryCount). Ordered in [ longitude0, latitude0, altitude0, …, longitudeN, latitudeN, altitudeN ] order. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udSceneNode_GetMetadataIntP11udSceneNodePKcP7int32_t7int32_t">
<span id="_CPPv326udSceneNode_GetMetadataIntP11udSceneNodePKcP7int32_t7int32_t"></span><span id="_CPPv226udSceneNode_GetMetadataIntP11udSceneNodePKcP7int32_t7int32_t"></span><span id="udSceneNode_GetMetadataInt__udSceneNodeP.cCP.int32_tP.int32_t"></span><span class="target" id="ud_scene_8h_1a4f32028e75acce40b8e61402ab6cbd81"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_GetMetadataInt</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, int32_t *<em>pInt</em>, int32_t <em>defaultValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udSceneNode_GetMetadataIntP11udSceneNodePKcP7int32_t7int32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a metadata item of a node as an integer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of reading the metadata into pInt. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pInt</span></code>: The pointer to the memory to write the metadata to </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">defaultValue</span></code>: The value to write to pInt if the metadata item isn’t in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> or if it isn’t of an integer type </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udSceneNode_SetMetadataIntP11udSceneNodePKc7int32_t">
<span id="_CPPv326udSceneNode_SetMetadataIntP11udSceneNodePKc7int32_t"></span><span id="_CPPv226udSceneNode_SetMetadataIntP11udSceneNodePKc7int32_t"></span><span id="udSceneNode_SetMetadataInt__udSceneNodeP.cCP.int32_t"></span><span class="target" id="ud_scene_8h_1a976a171a8c91cb95e01b012d4161672a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetMetadataInt</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, int32_t <em>iValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udSceneNode_SetMetadataIntP11udSceneNodePKc7int32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a metadata item of a node from an integer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the metadata into the node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">iValue</span></code>: The integer value to write to the metadata key </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udSceneNode_GetMetadataUintP11udSceneNodePKcP8uint32_t8uint32_t">
<span id="_CPPv327udSceneNode_GetMetadataUintP11udSceneNodePKcP8uint32_t8uint32_t"></span><span id="_CPPv227udSceneNode_GetMetadataUintP11udSceneNodePKcP8uint32_t8uint32_t"></span><span id="udSceneNode_GetMetadataUint__udSceneNodeP.cCP.uint32_tP.uint32_t"></span><span class="target" id="ud_scene_8h_1a010ce2fcd17e252e3b89404736ae707a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_GetMetadataUint</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, uint32_t *<em>pInt</em>, uint32_t <em>defaultValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udSceneNode_GetMetadataUintP11udSceneNodePKcP8uint32_t8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a metadata item of a node as an unsigned integer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of reading the metadata into pInt. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pInt</span></code>: The pointer to the memory to write the metadata to </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">defaultValue</span></code>: The value to write to pInt if the metadata item isn’t in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> or if it isn’t of an integer type </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udSceneNode_SetMetadataUintP11udSceneNodePKc8uint32_t">
<span id="_CPPv327udSceneNode_SetMetadataUintP11udSceneNodePKc8uint32_t"></span><span id="_CPPv227udSceneNode_SetMetadataUintP11udSceneNodePKc8uint32_t"></span><span id="udSceneNode_SetMetadataUint__udSceneNodeP.cCP.uint32_t"></span><span class="target" id="ud_scene_8h_1a79dbbd5ec8b02bad60903ae32c16717e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetMetadataUint</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, uint32_t <em>iValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udSceneNode_SetMetadataUintP11udSceneNodePKc8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a metadata item of a node from an unsigned integer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the metadata into the node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">iValue</span></code>: The unsigned integer value to write to the metadata key </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udSceneNode_GetMetadataInt64P11udSceneNodePKcP7int64_t7int64_t">
<span id="_CPPv328udSceneNode_GetMetadataInt64P11udSceneNodePKcP7int64_t7int64_t"></span><span id="_CPPv228udSceneNode_GetMetadataInt64P11udSceneNodePKcP7int64_t7int64_t"></span><span id="udSceneNode_GetMetadataInt64__udSceneNodeP.cCP.int64_tP.int64_t"></span><span class="target" id="ud_scene_8h_1aec22a35e94795bbe25ae36f176f4a80f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_GetMetadataInt64</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, int64_t *<em>pInt64</em>, int64_t <em>defaultValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udSceneNode_GetMetadataInt64P11udSceneNodePKcP7int64_t7int64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a metadata item of a node as a 64 bit integer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of reading the metadata into pInt64. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pInt64</span></code>: The pointer to the memory to write the metadata to </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">defaultValue</span></code>: The value to write to pInt64 if the metadata item isn’t in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> or if it isn’t of an integer type </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv428udSceneNode_SetMetadataInt64P11udSceneNodePKc7int64_t">
<span id="_CPPv328udSceneNode_SetMetadataInt64P11udSceneNodePKc7int64_t"></span><span id="_CPPv228udSceneNode_SetMetadataInt64P11udSceneNodePKc7int64_t"></span><span id="udSceneNode_SetMetadataInt64__udSceneNodeP.cCP.int64_t"></span><span class="target" id="ud_scene_8h_1a76aff5dc35e157cf894b6716b8509170"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetMetadataInt64</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, int64_t <em>i64Value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428udSceneNode_SetMetadataInt64P11udSceneNodePKc7int64_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a metadata item of a node from a 64 bit integer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the metadata into the node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">i64Value</span></code>: The integer value to write to the metadata key </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udSceneNode_GetMetadataDoubleP11udSceneNodePKcPdd">
<span id="_CPPv329udSceneNode_GetMetadataDoubleP11udSceneNodePKcPdd"></span><span id="_CPPv229udSceneNode_GetMetadataDoubleP11udSceneNodePKcPdd"></span><span id="udSceneNode_GetMetadataDouble__udSceneNodeP.cCP.doubleP.double"></span><span class="target" id="ud_scene_8h_1aed2f35cfc4a96819fd9533633cc6127a"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_GetMetadataDouble</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, double *<em>pDouble</em>, double <em>defaultValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udSceneNode_GetMetadataDoubleP11udSceneNodePKcPdd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a metadata item of a node as a double.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of reading the metadata into pDouble. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pDouble</span></code>: The pointer to the memory to write the metadata to </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">defaultValue</span></code>: The value to write to pDouble if the metadata item isn’t in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> or if it isn’t of an integer or floating point type </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udSceneNode_SetMetadataDoubleP11udSceneNodePKcd">
<span id="_CPPv329udSceneNode_SetMetadataDoubleP11udSceneNodePKcd"></span><span id="_CPPv229udSceneNode_SetMetadataDoubleP11udSceneNodePKcd"></span><span id="udSceneNode_SetMetadataDouble__udSceneNodeP.cCP.double"></span><span class="target" id="ud_scene_8h_1a1be1c94011d272a38dc05e872b194e40"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetMetadataDouble</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, double <em>doubleValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udSceneNode_SetMetadataDoubleP11udSceneNodePKcd" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a metadata item of a node from a double.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the metadata into the node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">doubleValue</span></code>: The double value to write to the metadata key </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udSceneNode_GetMetadataBoolP11udSceneNodePKcP8uint32_t8uint32_t">
<span id="_CPPv327udSceneNode_GetMetadataBoolP11udSceneNodePKcP8uint32_t8uint32_t"></span><span id="_CPPv227udSceneNode_GetMetadataBoolP11udSceneNodePKcP8uint32_t8uint32_t"></span><span id="udSceneNode_GetMetadataBool__udSceneNodeP.cCP.uint32_tP.uint32_t"></span><span class="target" id="ud_scene_8h_1aa64db63fb613d37e2f4ec69c2b725f0f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_GetMetadataBool</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, uint32_t *<em>pBool</em>, uint32_t <em>defaultValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udSceneNode_GetMetadataBoolP11udSceneNodePKcP8uint32_t8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a metadata item of a node as a boolean.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of reading the metadata into pBool. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pBool</span></code>: The pointer to the memory to write the metadata to (0=false, !0=true) </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">defaultValue</span></code>: The value to write to pBool if the metadata item isn’t in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> or if it isn’t of a boolean type </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udSceneNode_SetMetadataBoolP11udSceneNodePKc8uint32_t">
<span id="_CPPv327udSceneNode_SetMetadataBoolP11udSceneNodePKc8uint32_t"></span><span id="_CPPv227udSceneNode_SetMetadataBoolP11udSceneNodePKc8uint32_t"></span><span id="udSceneNode_SetMetadataBool__udSceneNodeP.cCP.uint32_t"></span><span class="target" id="ud_scene_8h_1a89b46f9a9f8fbf7d82a236491049902e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetMetadataBool</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, uint32_t <em>boolValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udSceneNode_SetMetadataBoolP11udSceneNodePKc8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a metadata item of a node from a boolean.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the metadata into the node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">boolValue</span></code>: The boolean value to write to the metadata key (0=false, !0=true) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udSceneNode_GetMetadataStringP11udSceneNodePKcPPKcPKc">
<span id="_CPPv329udSceneNode_GetMetadataStringP11udSceneNodePKcPPKcPKc"></span><span id="_CPPv229udSceneNode_GetMetadataStringP11udSceneNodePKcPPKcPKc"></span><span id="udSceneNode_GetMetadataString__udSceneNodeP.cCP.cCPP.cCP"></span><span class="target" id="ud_scene_8h_1abef4e334edf3b08ff25b5e666b0c4091"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_GetMetadataString</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, <em class="property">const</em> char **<em>ppString</em>, <em class="property">const</em> char *<em>pDefaultValue</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udSceneNode_GetMetadataStringP11udSceneNodePKcPPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a metadata item of a node as a string.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of reading the metadata into ppString. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppString</span></code>: The pointer pointer to the memory of the string. This is owned by the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> and should be copied if required to be stored for a long period. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pDefaultValue</span></code>: The value to write to ppString if the metadata item isn’t in the <a class="reference internal" href="#structud_scene_node"><span class="std std-ref">udSceneNode</span></a> or if it isn’t of a string type </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv429udSceneNode_SetMetadataStringP11udSceneNodePKcPKc">
<span id="_CPPv329udSceneNode_SetMetadataStringP11udSceneNodePKcPKc"></span><span id="_CPPv229udSceneNode_SetMetadataStringP11udSceneNodePKcPKc"></span><span id="udSceneNode_SetMetadataString__udSceneNodeP.cCP.cCP"></span><span class="target" id="ud_scene_8h_1af775ec12dc9895aa5fa60a7cbd71dc27"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udSceneNode_SetMetadataString</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<em>pNode</em>, <em class="property">const</em> char *<em>pMetadataKey</em>, <em class="property">const</em> char *<em>pString</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429udSceneNode_SetMetadataStringP11udSceneNodePKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a metadata item of a node from a string.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of writing the metadata into the node. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pNode</span></code>: The node to get the metadata from. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMetadataKey</span></code>: The name of the metadata key. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pString</span></code>: The string to write to the metadata key. This is duplicated internally. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv419udScene_GetTypeName15udSceneNodeType">
<span id="_CPPv319udScene_GetTypeName15udSceneNodeType"></span><span id="_CPPv219udScene_GetTypeName15udSceneNodeType"></span><span id="udScene_GetTypeName__udSceneNodeType"></span><span class="target" id="ud_scene_8h_1a50ef6371a7417943d32dc120835396ef"></span><em class="property">const</em> char *<code class="sig-name descname">udScene_GetTypeName</code><span class="sig-paren">(</span><em class="property">enum</em> <a class="reference internal" href="#_CPPv415udSceneNodeType" title="udSceneNodeType">udSceneNodeType</a> <em>itemtype</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419udScene_GetTypeName15udSceneNodeType" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the standard type string name for an itemtype</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A string containing the standard name for the item in the udSceneNodeType enum. This is internal and should not be freed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">itemtype</span></code>: The udSceneNodeType value </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udScene_DeleteServerProjectP9udContextPKcPKc">
<span id="_CPPv327udScene_DeleteServerProjectP9udContextPKcPKc"></span><span id="_CPPv227udScene_DeleteServerProjectP9udContextPKcPKc"></span><span id="udScene_DeleteServerProject__udContextP.cCP.cCP"></span><span class="target" id="ud_scene_8h_1a495ea9a1657f31513da0c117ac06abf8"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_DeleteServerProject</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">const</em> char *<em>pSceneUUID</em>, <em class="property">const</em> char *<em>pGroupID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udScene_DeleteServerProjectP9udContextPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Deletes a project from the server</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError result (udE_Success if it was deleted, other status codes depending on result) </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> to use to communicate with the server </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSceneUUID</span></code>: The UUID of the project to delete </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGroupID</span></code>: The ID for the workspace/project for udCloud projects (null for udServer projects) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv426udScene_SetLinkShareStatusP9udContextPKc8uint32_tPKc">
<span id="_CPPv326udScene_SetLinkShareStatusP9udContextPKc8uint32_tPKc"></span><span id="_CPPv226udScene_SetLinkShareStatusP9udContextPKc8uint32_tPKc"></span><span id="udScene_SetLinkShareStatus__udContextP.cCP.uint32_t.cCP"></span><span class="target" id="ud_scene_8h_1ab16b374ef163d3b1e60d7c2bb9e3b84f"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_SetLinkShareStatus</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">const</em> char *<em>pSceneUUID</em>, uint32_t <em>isSharableToAnyoneWithTheLink</em>, <em class="property">const</em> char *<em>pGroupID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udScene_SetLinkShareStatusP9udContextPKc8uint32_tPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Sets the share status of a project on the server</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError result (udE_Success if it was updated, other status codes depending on result) </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> to use to communicate with the server </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pSceneUUID</span></code>: The UUID of the project to update the share status of </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">isSharableToAnyoneWithTheLink</span></code>: Not 0 if the project should be able to be loaded by anyone with the link, 0 otherwise </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pGroupID</span></code>: The ID for the workspace/project for udCloud projects (null for udServer projects) </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udScene_GetSessionIDP7udScenePPKc">
<span id="_CPPv320udScene_GetSessionIDP7udScenePPKc"></span><span id="_CPPv220udScene_GetSessionIDP7udScenePPKc"></span><span id="udScene_GetSessionID__udSceneP.cCPP"></span><span class="target" id="ud_scene_8h_1a23e1b2250371a4d853bea1545e24f962"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_GetSessionID</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char **<em>ppSessionID</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udScene_GetSessionIDP7udScenePPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the session ID (for server projects).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the root node. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>Returns udE_NotFound for non-server projects </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppSessionID</span></code>: The pointer pointer to memory that will contain the session ID. The ownership still belongs to the pScene. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv420udScene_QueueMessageP7udScenePKcPKcPKc">
<span id="_CPPv320udScene_QueueMessageP7udScenePKcPKcPKc"></span><span id="_CPPv220udScene_QueueMessageP7udScenePKcPKcPKc"></span><span id="udScene_QueueMessage__udSceneP.cCP.cCP.cCP"></span><span class="target" id="ud_scene_8h_1adeaf43575cc40a3ca25982aca441b096"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_QueueMessage</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char *<em>pTargetSessionID</em>, <em class="property">const</em> char *<em>pMessageType</em>, <em class="property">const</em> char *<em>pMessagePayload</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udScene_QueueMessageP7udScenePKcPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Queues a message to be sent on next project update (for server projects).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError result (udE_Success if the message was successfully queued, other status codes depending on result) </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to the active <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pTargetSessionID</span></code>: The session ID of the user who will receive this message. Passing in ‘nullptr’ to this parameter indicates all users (except the sender) will receive this message. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMessageType</span></code>: pMessageType User defined message type. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pMessagePayload</span></code>: User defined payload. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udScene_SaveThumbnailP7udScenePKc">
<span id="_CPPv321udScene_SaveThumbnailP7udScenePKc"></span><span id="_CPPv221udScene_SaveThumbnailP7udScenePKc"></span><span id="udScene_SaveThumbnail__udSceneP.cCP"></span><span class="target" id="ud_scene_8h_1ab254768df31af54c9ce13796dafcb8bf"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udScene_SaveThumbnail</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv47udScene" title="udScene">udScene</a> *<em>pScene</em>, <em class="property">const</em> char *<em>pImageBase64</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udScene_SaveThumbnailP7udScenePKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Saves a project thumbnail in base64 format to the server (udCloud only).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the save. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pScene</span></code>: The pointer to a valid <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a> to save the thumbnail to. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pImageBase64</span></code>: The base64 encoded thumbnail. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv415udScenePosition">
<span id="_CPPv315udScenePosition"></span><span id="_CPPv215udScenePosition"></span><span id="udScenePosition"></span><span class="target" id="structud_scene_position"></span><em class="property">struct </em><code class="sig-name descname">udScenePosition</code><a class="headerlink" href="#_CPPv415udScenePosition" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udScene.h&gt;</em><p>This represents a position in 3D <dl class="simple">
<dt><strong>Note</strong></dt><dd><p>contains x,y,z and heading, pitch (generally of a camera) in the project CRS </p>
</dd>
</dl>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N15udScenePosition1xE">
<span id="_CPPv3N15udScenePosition1xE"></span><span id="_CPPv2N15udScenePosition1xE"></span><span id="udScenePosition::x__double"></span><span class="target" id="structud_scene_position_1a3392ececafda48650f9952b17aa7cde2"></span>double <code class="sig-name descname">x</code><a class="headerlink" href="#_CPPv4N15udScenePosition1xE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The x coordiante of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udScenePosition1yE">
<span id="_CPPv3N15udScenePosition1yE"></span><span id="_CPPv2N15udScenePosition1yE"></span><span id="udScenePosition::y__double"></span><span class="target" id="structud_scene_position_1aac7ab104418c53ae06270bed9ffe7d09"></span>double <code class="sig-name descname">y</code><a class="headerlink" href="#_CPPv4N15udScenePosition1yE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The y coordiante of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udScenePosition1zE">
<span id="_CPPv3N15udScenePosition1zE"></span><span id="_CPPv2N15udScenePosition1zE"></span><span id="udScenePosition::z__double"></span><span class="target" id="structud_scene_position_1a0618a2c803890c8424008798c3390cdc"></span>double <code class="sig-name descname">z</code><a class="headerlink" href="#_CPPv4N15udScenePosition1zE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The z coordiante of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udScenePosition7headingE">
<span id="_CPPv3N15udScenePosition7headingE"></span><span id="_CPPv2N15udScenePosition7headingE"></span><span id="udScenePosition::heading__double"></span><span class="target" id="structud_scene_position_1a94cea0040bc98c7d6d5054cadf2e831a"></span>double <code class="sig-name descname">heading</code><a class="headerlink" href="#_CPPv4N15udScenePosition7headingE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The heading of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udScenePosition5pitchE">
<span id="_CPPv3N15udScenePosition5pitchE"></span><span id="_CPPv2N15udScenePosition5pitchE"></span><span id="udScenePosition::pitch__double"></span><span class="target" id="structud_scene_position_1a79056b39727dc66c402597098a343500"></span>double <code class="sig-name descname">pitch</code><a class="headerlink" href="#_CPPv4N15udScenePosition5pitchE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The pitch of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N15udScenePosition4rollE">
<span id="_CPPv3N15udScenePosition4rollE"></span><span id="_CPPv2N15udScenePosition4rollE"></span><span id="udScenePosition::roll__double"></span><span class="target" id="structud_scene_position_1a2825533a2f36ca9ce77845792cf8c1bc"></span>double <code class="sig-name descname">roll</code><a class="headerlink" href="#_CPPv4N15udScenePosition4rollE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The roll of the item. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv419udSceneNodeSelected">
<span id="_CPPv319udSceneNodeSelected"></span><span id="_CPPv219udSceneNodeSelected"></span><span id="udSceneNodeSelected"></span><span class="target" id="structud_scene_node_selected"></span><em class="property">struct </em><code class="sig-name descname">udSceneNodeSelected</code><a class="headerlink" href="#_CPPv419udSceneNodeSelected" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udScene.h&gt;</em><p>This represents the selected scene node of a user </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udSceneNodeSelected2idE">
<span id="_CPPv3N19udSceneNodeSelected2idE"></span><span id="_CPPv2N19udSceneNodeSelected2idE"></span><span id="udSceneNodeSelected::id__cA"></span><span class="target" id="structud_scene_node_selected_1a9c6711011118d3d02cd063ae9a8a20f7"></span>char <code class="sig-name descname">id</code>[37]<a class="headerlink" href="#_CPPv4N19udSceneNodeSelected2idE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The uuid of the selected node. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv414udSceneMessage">
<span id="_CPPv314udSceneMessage"></span><span id="_CPPv214udSceneMessage"></span><span id="udSceneMessage"></span><span class="target" id="structud_scene_message"></span><em class="property">struct </em><code class="sig-name descname">udSceneMessage</code><a class="headerlink" href="#_CPPv414udSceneMessage" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udScene.h&gt;</em><p>This represents the message sent to other users (or to us) in a scene during collaboration </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N14udSceneMessage12pMessageTypeE">
<span id="_CPPv3N14udSceneMessage12pMessageTypeE"></span><span id="_CPPv2N14udSceneMessage12pMessageTypeE"></span><span id="udSceneMessage::pMessageType__cCP"></span><span class="target" id="structud_scene_message_1a4ceb437c978030e497b394e34540cd07"></span><em class="property">const</em> char *<code class="sig-name descname">pMessageType</code><a class="headerlink" href="#_CPPv4N14udSceneMessage12pMessageTypeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The type of the message. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udSceneMessage15pMessagePayloadE">
<span id="_CPPv3N14udSceneMessage15pMessagePayloadE"></span><span id="_CPPv2N14udSceneMessage15pMessagePayloadE"></span><span id="udSceneMessage::pMessagePayload__cCP"></span><span class="target" id="structud_scene_message_1a267825b20f9af109f766b17273180ec0"></span><em class="property">const</em> char *<code class="sig-name descname">pMessagePayload</code><a class="headerlink" href="#_CPPv4N14udSceneMessage15pMessagePayloadE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The payload of the message. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udSceneMessage16pTargetSessionIDE">
<span id="_CPPv3N14udSceneMessage16pTargetSessionIDE"></span><span id="_CPPv2N14udSceneMessage16pTargetSessionIDE"></span><span id="udSceneMessage::pTargetSessionID__cCP"></span><span class="target" id="structud_scene_message_1a80cef7e438a781f0314e5725133014f5"></span><em class="property">const</em> char *<code class="sig-name descname">pTargetSessionID</code><a class="headerlink" href="#_CPPv4N14udSceneMessage16pTargetSessionIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The session ID of the message. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udSceneMessage22pReceivedFromSessionIDE">
<span id="_CPPv3N14udSceneMessage22pReceivedFromSessionIDE"></span><span id="_CPPv2N14udSceneMessage22pReceivedFromSessionIDE"></span><span id="udSceneMessage::pReceivedFromSessionID__cCP"></span><span class="target" id="structud_scene_message_1a50f931bc577cb55fc7a256acfc2c48f9"></span><em class="property">const</em> char *<code class="sig-name descname">pReceivedFromSessionID</code><a class="headerlink" href="#_CPPv4N14udSceneMessage22pReceivedFromSessionIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The session Id where it’s been received. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv411udSceneUser">
<span id="_CPPv311udSceneUser"></span><span id="_CPPv211udSceneUser"></span><span id="udSceneUser"></span><span class="target" id="structud_scene_user"></span><em class="property">struct </em><code class="sig-name descname">udSceneUser</code><a class="headerlink" href="#_CPPv411udSceneUser" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udScene.h&gt;</em><p>This represents the user info (used for collaboration) </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N11udSceneUser12pDisplayNameE">
<span id="_CPPv3N11udSceneUser12pDisplayNameE"></span><span id="_CPPv2N11udSceneUser12pDisplayNameE"></span><span id="udSceneUser::pDisplayName__cCP"></span><span class="target" id="structud_scene_user_1af23c26ce3d1c56881567c97d148c510e"></span><em class="property">const</em> char *<code class="sig-name descname">pDisplayName</code><a class="headerlink" href="#_CPPv4N11udSceneUser12pDisplayNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The name to display for this user. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser7pUserIDE">
<span id="_CPPv3N11udSceneUser7pUserIDE"></span><span id="_CPPv2N11udSceneUser7pUserIDE"></span><span id="udSceneUser::pUserID__cCP"></span><span class="target" id="structud_scene_user_1a90123b344d306ba9f394bcfcfce747f3"></span><em class="property">const</em> char *<code class="sig-name descname">pUserID</code><a class="headerlink" href="#_CPPv4N11udSceneUser7pUserIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The uuid of the user. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser15pSceneSessionIDE">
<span id="_CPPv3N11udSceneUser15pSceneSessionIDE"></span><span id="_CPPv2N11udSceneUser15pSceneSessionIDE"></span><span id="udSceneUser::pSceneSessionID__cCP"></span><span class="target" id="structud_scene_user_1a771e6101a4c94420ddd076870d086c7a"></span><em class="property">const</em> char *<code class="sig-name descname">pSceneSessionID</code><a class="headerlink" href="#_CPPv4N11udSceneUser15pSceneSessionIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The current scene/session ID this user is log in. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser11lastUpdatedE">
<span id="_CPPv3N11udSceneUser11lastUpdatedE"></span><span id="_CPPv2N11udSceneUser11lastUpdatedE"></span><span id="udSceneUser::lastUpdated__double"></span><span class="target" id="structud_scene_user_1ae20573dcfb5401f046e83616f3e1d6b6"></span>double <code class="sig-name descname">lastUpdated</code><a class="headerlink" href="#_CPPv4N11udSceneUser11lastUpdatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The time its position was been last updated [server time]. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser9userFlagsE">
<span id="_CPPv3N11udSceneUser9userFlagsE"></span><span id="_CPPv2N11udSceneUser9userFlagsE"></span><span id="udSceneUser::userFlags__udSceneUserFlag"></span><span class="target" id="structud_scene_user_1a00c5c50d4ebb9da0811f572e48174ba8"></span><a class="reference internal" href="#_CPPv415udSceneUserFlag" title="udSceneUserFlag">udSceneUserFlag</a> <code class="sig-name descname">userFlags</code><a class="headerlink" href="#_CPPv4N11udSceneUser9userFlagsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Flag to know if user is using XR. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser18selectedNodesCountE">
<span id="_CPPv3N11udSceneUser18selectedNodesCountE"></span><span id="_CPPv2N11udSceneUser18selectedNodesCountE"></span><span id="udSceneUser::selectedNodesCount__uint32_t"></span><span class="target" id="structud_scene_user_1a4810f54937938797ee9b1089aae8b89f"></span>uint32_t <code class="sig-name descname">selectedNodesCount</code><a class="headerlink" href="#_CPPv4N11udSceneUser18selectedNodesCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The number of node selected. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser17selectedNodesListE">
<span id="_CPPv3N11udSceneUser17selectedNodesListE"></span><span id="_CPPv2N11udSceneUser17selectedNodesListE"></span><span id="udSceneUser::selectedNodesList__udSceneNodeSelectedP"></span><span class="target" id="structud_scene_user_1a455cd670948a131da180fb4518e71187"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udSceneNodeSelected" title="udSceneNodeSelected">udSceneNodeSelected</a> *<code class="sig-name descname">selectedNodesList</code><a class="headerlink" href="#_CPPv4N11udSceneUser17selectedNodesListE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The selected nodes. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser10headCameraE">
<span id="_CPPv3N11udSceneUser10headCameraE"></span><span id="_CPPv2N11udSceneUser10headCameraE"></span><span id="udSceneUser::headCamera__udScenePosition"></span><span class="target" id="structud_scene_user_1a5d6f2300e68c0c5211ae2ee7cf795b97"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udScenePosition" title="udScenePosition">udScenePosition</a> <code class="sig-name descname">headCamera</code><a class="headerlink" href="#_CPPv4N11udSceneUser10headCameraE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the head or camera for the active viewer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser9handRightE">
<span id="_CPPv3N11udSceneUser9handRightE"></span><span id="_CPPv2N11udSceneUser9handRightE"></span><span id="udSceneUser::handRight__udScenePosition"></span><span class="target" id="structud_scene_user_1afe978456adbafdfb59423cd8473afef9"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udScenePosition" title="udScenePosition">udScenePosition</a> <code class="sig-name descname">handRight</code><a class="headerlink" href="#_CPPv4N11udSceneUser9handRightE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the right hand for the active viewer if udSceneUserFlag_HasHands is set in userFlags. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser8handLeftE">
<span id="_CPPv3N11udSceneUser8handLeftE"></span><span id="_CPPv2N11udSceneUser8handLeftE"></span><span id="udSceneUser::handLeft__udScenePosition"></span><span class="target" id="structud_scene_user_1affa64224de1e649e885a5d572e05bed3"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udScenePosition" title="udScenePosition">udScenePosition</a> <code class="sig-name descname">handLeft</code><a class="headerlink" href="#_CPPv4N11udSceneUser8handLeftE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the left hand for the active viewer if udSceneUserFlag_HasHands is set in userFlags. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneUser16worldAnchorPointE">
<span id="_CPPv3N11udSceneUser16worldAnchorPointE"></span><span id="_CPPv2N11udSceneUser16worldAnchorPointE"></span><span id="udSceneUser::worldAnchorPoint__udMathDouble4"></span><span class="target" id="structud_scene_user_1ac8555e76e3a2158d252a5ea4ce46f4bd"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble4" title="udMathDouble4">udMathDouble4</a> <code class="sig-name descname">worldAnchorPoint</code><a class="headerlink" href="#_CPPv4N11udSceneUser16worldAnchorPointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the world anchor point if udSceneUserFlag_HasAnchorAndScale is set; xyz are a position in world space and w is the scale factor. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv411udSceneNode">
<span id="_CPPv311udSceneNode"></span><span id="_CPPv211udSceneNode"></span><span id="udSceneNode"></span><span class="target" id="structud_scene_node"></span><em class="property">struct </em><code class="sig-name descname">udSceneNode</code><a class="headerlink" href="#_CPPv411udSceneNode" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udScene.h&gt;</em><p>Stores the state of a node. <dl class="simple">
<dt><strong>Warning</strong></dt><dd><p>This struct is exposed to avoid having a huge API of accessor functions but it should be treated as read only with the exception of <code class="docutils literal notranslate"><span class="pre">pUserData</span></code>. Making changes to the internal data will cause issues syncronising data </p>
</dd>
</dl>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N11udSceneNode9isVisibleE">
<span id="_CPPv3N11udSceneNode9isVisibleE"></span><span id="_CPPv2N11udSceneNode9isVisibleE"></span><span id="udSceneNode::isVisible__i"></span><span class="target" id="structud_scene_node_1aefa84122d616b4c94f0406e08b1e0d57"></span>int <code class="sig-name descname">isVisible</code><a class="headerlink" href="#_CPPv4N11udSceneNode9isVisibleE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Non-zero if the node is visible and should be drawn in the scene. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode4UUIDE">
<span id="_CPPv3N11udSceneNode4UUIDE"></span><span id="_CPPv2N11udSceneNode4UUIDE"></span><span id="udSceneNode::UUID__cA"></span><span class="target" id="structud_scene_node_1aa75a372da5bafac7b7c489e75485c6c7"></span>char <code class="sig-name descname">UUID</code>[37]<a class="headerlink" href="#_CPPv4N11udSceneNode4UUIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Unique identifier for this node “id”. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode10lastUpdateE">
<span id="_CPPv3N11udSceneNode10lastUpdateE"></span><span id="_CPPv2N11udSceneNode10lastUpdateE"></span><span id="udSceneNode::lastUpdate__double"></span><span class="target" id="structud_scene_node_1a23c9f4388951c832c0a336325e7f78c3"></span>double <code class="sig-name descname">lastUpdate</code><a class="headerlink" href="#_CPPv4N11udSceneNode10lastUpdateE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The last time this node was updated in UTC. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode8itemtypeE">
<span id="_CPPv3N11udSceneNode8itemtypeE"></span><span id="_CPPv2N11udSceneNode8itemtypeE"></span><span id="udSceneNode::itemtype__udSceneNodeType"></span><span class="target" id="structud_scene_node_1a85d8c0838000b4407182195282952147"></span><a class="reference internal" href="#_CPPv415udSceneNodeType" title="udSceneNodeType">udSceneNodeType</a> <code class="sig-name descname">itemtype</code><a class="headerlink" href="#_CPPv4N11udSceneNode8itemtypeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The type of this node, see udSceneNodeType for more information. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode11itemtypeStrE">
<span id="_CPPv3N11udSceneNode11itemtypeStrE"></span><span id="_CPPv2N11udSceneNode11itemtypeStrE"></span><span id="udSceneNode::itemtypeStr__cA"></span><span class="target" id="structud_scene_node_1a3e4afb40a6ac625488bfc959c8f8b882"></span>char <code class="sig-name descname">itemtypeStr</code>[8]<a class="headerlink" href="#_CPPv4N11udSceneNode11itemtypeStrE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The string representing the type of node. If its a known type during node creation <code class="docutils literal notranslate"><span class="pre">itemtype</span></code> will be set to something other than udPNT_Custom. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode5pNameE">
<span id="_CPPv3N11udSceneNode5pNameE"></span><span id="_CPPv2N11udSceneNode5pNameE"></span><span id="udSceneNode::pName__cCP"></span><span class="target" id="structud_scene_node_1afad182a75e244db29763b366a644cbfb"></span><em class="property">const</em> char *<code class="sig-name descname">pName</code><a class="headerlink" href="#_CPPv4N11udSceneNode5pNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Human readable name of the item. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode4pURIE">
<span id="_CPPv3N11udSceneNode4pURIE"></span><span id="_CPPv2N11udSceneNode4pURIE"></span><span id="udSceneNode::pURI__cCP"></span><span class="target" id="structud_scene_node_1a96a9f178d5f53f5d6f2eedac15215885"></span><em class="property">const</em> char *<code class="sig-name descname">pURI</code><a class="headerlink" href="#_CPPv4N11udSceneNode4pURIE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The address or filename that the resource can be found. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode14hasBoundingBoxE">
<span id="_CPPv3N11udSceneNode14hasBoundingBoxE"></span><span id="_CPPv2N11udSceneNode14hasBoundingBoxE"></span><span id="udSceneNode::hasBoundingBox__uint32_t"></span><span class="target" id="structud_scene_node_1a3d161bf3200bf801a71f8249ecc2dc65"></span>uint32_t <code class="sig-name descname">hasBoundingBox</code><a class="headerlink" href="#_CPPv4N11udSceneNode14hasBoundingBoxE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set to not 0 if this nodes boundingBox item is filled out. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode11boundingBoxE">
<span id="_CPPv3N11udSceneNode11boundingBoxE"></span><span id="_CPPv2N11udSceneNode11boundingBoxE"></span><span id="udSceneNode::boundingBox__doubleA"></span><span class="target" id="structud_scene_node_1a3a3d7e6769be633cdb710c3930506300"></span>double <code class="sig-name descname">boundingBox</code>[6]<a class="headerlink" href="#_CPPv4N11udSceneNode11boundingBoxE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The bounds of this model, ordered as [West, South, Floor, East, North, Ceiling]. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode8geomtypeE">
<span id="_CPPv3N11udSceneNode8geomtypeE"></span><span id="_CPPv2N11udSceneNode8geomtypeE"></span><span id="udSceneNode::geomtype__udSceneGeometryType"></span><span class="target" id="structud_scene_node_1a0ba690aef5973845141a9369d80afb81"></span><a class="reference internal" href="#_CPPv419udSceneGeometryType" title="udSceneGeometryType">udSceneGeometryType</a> <code class="sig-name descname">geomtype</code><a class="headerlink" href="#_CPPv4N11udSceneNode8geomtypeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Indicates what geometry can be found in this model. See the udSceneGeometryType documentation for more information. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode9geomCountE">
<span id="_CPPv3N11udSceneNode9geomCountE"></span><span id="_CPPv2N11udSceneNode9geomCountE"></span><span id="udSceneNode::geomCount__i"></span><span class="target" id="structud_scene_node_1afc92c4b04fa2b5cf82e9774b01f18c0e"></span>int <code class="sig-name descname">geomCount</code><a class="headerlink" href="#_CPPv4N11udSceneNode9geomCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How many geometry items can be found on this model. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode12pCoordinatesE">
<span id="_CPPv3N11udSceneNode12pCoordinatesE"></span><span id="_CPPv2N11udSceneNode12pCoordinatesE"></span><span id="udSceneNode::pCoordinates__doubleP"></span><span class="target" id="structud_scene_node_1a7a34fe8800d88fc5ffd7ff88471ff070"></span>double *<code class="sig-name descname">pCoordinates</code><a class="headerlink" href="#_CPPv4N11udSceneNode12pCoordinatesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The positions of the geometry of this node (NULL this this node doesn’t have points). The format is [X0,Y0,Z0,…Xn,Yn,Zn]. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode7pParentE">
<span id="_CPPv3N11udSceneNode7pParentE"></span><span id="_CPPv2N11udSceneNode7pParentE"></span><span id="udSceneNode::pParent__udSceneNodeP"></span><span class="target" id="structud_scene_node_1a1365c50532bc46c47515d515a17d8ee5"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<code class="sig-name descname">pParent</code><a class="headerlink" href="#_CPPv4N11udSceneNode7pParentE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This is the parent item of the current node (NULL if root node) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode12pNextSiblingE">
<span id="_CPPv3N11udSceneNode12pNextSiblingE"></span><span id="_CPPv2N11udSceneNode12pNextSiblingE"></span><span id="udSceneNode::pNextSibling__udSceneNodeP"></span><span class="target" id="structud_scene_node_1ab13f9edfd8eb686c6bdb4a027aaab3e0"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<code class="sig-name descname">pNextSibling</code><a class="headerlink" href="#_CPPv4N11udSceneNode12pNextSiblingE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This is the next item in the scene (NULL if no further siblings) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode11pFirstChildE">
<span id="_CPPv3N11udSceneNode11pFirstChildE"></span><span id="_CPPv2N11udSceneNode11pFirstChildE"></span><span id="udSceneNode::pFirstChild__udSceneNodeP"></span><span class="target" id="structud_scene_node_1a769fa6fe50d96fa93e14bc6b3b16a25c"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *<code class="sig-name descname">pFirstChild</code><a class="headerlink" href="#_CPPv4N11udSceneNode11pFirstChildE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Some types (“folder”, “collection”, “polygon”…) have children nodes, NULL if there are no children. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode16pUserDataCleanupE">
<span id="_CPPv3N11udSceneNode16pUserDataCleanupE"></span><span id="_CPPv2N11udSceneNode16pUserDataCleanupE"></span><span class="target" id="structud_scene_node_1aa6aca489a279e32bfb8254fe6302b5bd"></span>void (*<code class="sig-name descname">pUserDataCleanup</code>)<span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneNode" title="udSceneNode">udSceneNode</a> *pNode, void *pUserData<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11udSceneNode16pUserDataCleanupE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>When a project node is deleted, this function is called first. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode9pUserDataE">
<span id="_CPPv3N11udSceneNode9pUserDataE"></span><span id="_CPPv2N11udSceneNode9pUserDataE"></span><span id="udSceneNode::pUserData__voidP"></span><span class="target" id="structud_scene_node_1a7ab194cf1a1bdf53b9dea0ea3c3eb30b"></span>void *<code class="sig-name descname">pUserData</code><a class="headerlink" href="#_CPPv4N11udSceneNode9pUserDataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This is application specific user data. The application should traverse the tree to release these before releasing the <a class="reference internal" href="#structud_scene"><span class="std std-ref">udScene</span></a>. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udSceneNode13pInternalDataE">
<span id="_CPPv3N11udSceneNode13pInternalDataE"></span><span id="_CPPv2N11udSceneNode13pInternalDataE"></span><span id="udSceneNode::pInternalData__udSceneNodeInternalP"></span><span class="target" id="structud_scene_node_1a8ab1fa424a17e3d12a4b7627c48c31fc"></span><em class="property">struct</em> udSceneNodeInternal *<code class="sig-name descname">pInternalData</code><a class="headerlink" href="#_CPPv4N11udSceneNode13pInternalDataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internal udSDK specific state for this node. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv417udSceneUpdateInfo">
<span id="_CPPv317udSceneUpdateInfo"></span><span id="_CPPv217udSceneUpdateInfo"></span><span id="udSceneUpdateInfo"></span><span class="target" id="structud_scene_update_info"></span><em class="property">struct </em><code class="sig-name descname">udSceneUpdateInfo</code><a class="headerlink" href="#_CPPv417udSceneUpdateInfo" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udScene.h&gt;</em><p>This represents the update info given/received to/by udScene_Update <dl class="simple">
<dt><strong>Warning</strong></dt><dd><p>Memory is Freed on next call of udScene_Updte() </p>
</dd>
</dl>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo9forceSyncE">
<span id="_CPPv3N17udSceneUpdateInfo9forceSyncE"></span><span id="_CPPv2N17udSceneUpdateInfo9forceSyncE"></span><span id="udSceneUpdateInfo::forceSync__uint32_t"></span><span class="target" id="structud_scene_update_info_1ab63c7a56babba68ca73eb63806afe7a5"></span>uint32_t <code class="sig-name descname">forceSync</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo9forceSyncE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If this is non-zero the sync to the server will happen immediately and the update call will block. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo15lastUpdatedTimeE">
<span id="_CPPv3N17udSceneUpdateInfo15lastUpdatedTimeE"></span><span id="_CPPv2N17udSceneUpdateInfo15lastUpdatedTimeE"></span><span id="udSceneUpdateInfo::lastUpdatedTime__double"></span><span class="target" id="structud_scene_update_info_1aaeca2578514c6a9b7d6644a17b937be4"></span>double <code class="sig-name descname">lastUpdatedTime</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo15lastUpdatedTimeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The timestamp that the scene was last updated (local time) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo9userFlagsE">
<span id="_CPPv3N17udSceneUpdateInfo9userFlagsE"></span><span id="_CPPv2N17udSceneUpdateInfo9userFlagsE"></span><span id="udSceneUpdateInfo::userFlags__udSceneUserFlag"></span><span class="target" id="structud_scene_update_info_1a8b13ab57aaf9d263e1df4f12c480193b"></span><a class="reference internal" href="#_CPPv415udSceneUserFlag" title="udSceneUserFlag">udSceneUserFlag</a> <code class="sig-name descname">userFlags</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo9userFlagsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User flags to define the device and other properties. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo18selectedNodesCountE">
<span id="_CPPv3N17udSceneUpdateInfo18selectedNodesCountE"></span><span id="_CPPv2N17udSceneUpdateInfo18selectedNodesCountE"></span><span id="udSceneUpdateInfo::selectedNodesCount__uint32_t"></span><span class="target" id="structud_scene_update_info_1a842ef175d3aa73f610775b457317cc08"></span>uint32_t <code class="sig-name descname">selectedNodesCount</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo18selectedNodesCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The length of pSelectedNodesList. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo18pSelectedNodesListE">
<span id="_CPPv3N17udSceneUpdateInfo18pSelectedNodesListE"></span><span id="_CPPv2N17udSceneUpdateInfo18pSelectedNodesListE"></span><span id="udSceneUpdateInfo::pSelectedNodesList__udSceneNodeSelectedP"></span><span class="target" id="structud_scene_update_info_1af963ccfd7336fb0c7c72f4f9a6165a7c"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udSceneNodeSelected" title="udSceneNodeSelected">udSceneNodeSelected</a> *<code class="sig-name descname">pSelectedNodesList</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo18pSelectedNodesListE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The list of selected nodes. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo10headCameraE">
<span id="_CPPv3N17udSceneUpdateInfo10headCameraE"></span><span id="_CPPv2N17udSceneUpdateInfo10headCameraE"></span><span id="udSceneUpdateInfo::headCamera__udScenePosition"></span><span class="target" id="structud_scene_update_info_1ae287fd28adf0e1bb60ee4fb2758aeeb5"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udScenePosition" title="udScenePosition">udScenePosition</a> <code class="sig-name descname">headCamera</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo10headCameraE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the head or camera for the active viewer. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo9handRightE">
<span id="_CPPv3N17udSceneUpdateInfo9handRightE"></span><span id="_CPPv2N17udSceneUpdateInfo9handRightE"></span><span id="udSceneUpdateInfo::handRight__udScenePosition"></span><span class="target" id="structud_scene_update_info_1a9680acbbc509ddbfda518fc66cb83401"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udScenePosition" title="udScenePosition">udScenePosition</a> <code class="sig-name descname">handRight</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo9handRightE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the right hand for the active viewer if udSceneUserFlag_HasHands is set in userFlags. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo8handLeftE">
<span id="_CPPv3N17udSceneUpdateInfo8handLeftE"></span><span id="_CPPv2N17udSceneUpdateInfo8handLeftE"></span><span id="udSceneUpdateInfo::handLeft__udScenePosition"></span><span class="target" id="structud_scene_update_info_1a8fd5820d5949c19f57a67372cbf2eb3f"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv415udScenePosition" title="udScenePosition">udScenePosition</a> <code class="sig-name descname">handLeft</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo8handLeftE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the left hand for the active viewer if udSceneUserFlag_HasHands is set in userFlags. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo16worldAnchorPointE">
<span id="_CPPv3N17udSceneUpdateInfo16worldAnchorPointE"></span><span id="_CPPv2N17udSceneUpdateInfo16worldAnchorPointE"></span><span id="udSceneUpdateInfo::worldAnchorPoint__udMathDouble4"></span><span class="target" id="structud_scene_update_info_1a695eab6fce1c9514e57e97c5a6043865"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv413udMathDouble4" title="udMathDouble4">udMathDouble4</a> <code class="sig-name descname">worldAnchorPoint</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo16worldAnchorPointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the world anchor point if udSceneUserFlag_HasAnchorAndScale is set; xyz are a position in world space and w is the scale factor. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo9pUserListE">
<span id="_CPPv3N17udSceneUpdateInfo9pUserListE"></span><span id="_CPPv2N17udSceneUpdateInfo9pUserListE"></span><span id="udSceneUpdateInfo::pUserList__udSceneUserP"></span><span class="target" id="structud_scene_update_info_1a8b3fed8261ed9f7c826d68f26a97f073"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udSceneUser" title="udSceneUser">udSceneUser</a> *<code class="sig-name descname">pUserList</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo9pUserListE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The list of other users in this scene. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo10usersCountE">
<span id="_CPPv3N17udSceneUpdateInfo10usersCountE"></span><span id="_CPPv2N17udSceneUpdateInfo10usersCountE"></span><span id="udSceneUpdateInfo::usersCount__uint32_t"></span><span class="target" id="structud_scene_update_info_1aaa7a540e6e0dffbcbb987ddb47fc9d25"></span>uint32_t <code class="sig-name descname">usersCount</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo10usersCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The number of users in the scene (and length of pUserList) </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo17pReceivedMessagesE">
<span id="_CPPv3N17udSceneUpdateInfo17pReceivedMessagesE"></span><span id="_CPPv2N17udSceneUpdateInfo17pReceivedMessagesE"></span><span id="udSceneUpdateInfo::pReceivedMessages__udSceneMessageP"></span><span class="target" id="structud_scene_update_info_1a4b7940adbf25552ee3059783e678b73b"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udSceneMessage" title="udSceneMessage">udSceneMessage</a> *<code class="sig-name descname">pReceivedMessages</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo17pReceivedMessagesE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The list of messages. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N17udSceneUpdateInfo21receivedMessagesCountE">
<span id="_CPPv3N17udSceneUpdateInfo21receivedMessagesCountE"></span><span id="_CPPv2N17udSceneUpdateInfo21receivedMessagesCountE"></span><span id="udSceneUpdateInfo::receivedMessagesCount__uint32_t"></span><span class="target" id="structud_scene_update_info_1a4848403022d0a3aefbf6d100722ea42b"></span>uint32_t <code class="sig-name descname">receivedMessagesCount</code><a class="headerlink" href="#_CPPv4N17udSceneUpdateInfo21receivedMessagesCountE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The length of pReceivedMessages. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="analysis-features">
<h2>Analysis Features<a class="headerlink" href="#analysis-features" title="Permalink to this headline">¶</a></h2>
<section id="udcompare">
<h3>udCompare<a class="headerlink" href="#udcompare" title="Permalink to this headline">¶</a></h3>
<p>udCompare.h provides an interface to compare Unlimited Detail models. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv413udCompare_BPAP16udConvertContextP19udCompareBPAOptions">
<span id="_CPPv313udCompare_BPAP16udConvertContextP19udCompareBPAOptions"></span><span id="_CPPv213udCompare_BPAP16udConvertContextP19udCompareBPAOptions"></span><span id="udCompare_BPA__udConvertContextP.udCompareBPAOptionsP"></span><span class="target" id="ud_compare_8h_1adac6d1f8bcdf8780bee43f9adef76bf9"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCompare_BPA</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udConvertContext" title="udConvertContext">udConvertContext</a> *<em>pConvertContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv419udCompareBPAOptions" title="udCompareBPAOptions">udCompareBPAOptions</a> *<em>pOptions</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv413udCompare_BPAP16udConvertContextP19udCompareBPAOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Compares input models using the Ball-Pivot Algorithm (BPA). A meshing operation is first performed using BPA followed by a cloud to model (C2M) comparison</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of setting up BPA on the input models. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This function does not start the conversion process, this allows the user to make additional changes to the convert job. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pConvertContext</span></code>: The convert context to be used to compare the models. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pOptions</span></code>: The parameters passed to the BPA algorithm </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv419udCompareBPAOptions">
<span id="_CPPv319udCompareBPAOptions"></span><span id="_CPPv219udCompareBPAOptions"></span><span id="udCompareBPAOptions"></span><span class="target" id="structud_compare_b_p_a_options"></span><em class="property">struct </em><code class="sig-name descname">udCompareBPAOptions</code><a class="headerlink" href="#_CPPv419udCompareBPAOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udCompare.h&gt;</em><p>Contains the options for the comparison algorithm </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N19udCompareBPAOptions14pBaseModelPathE">
<span id="_CPPv3N19udCompareBPAOptions14pBaseModelPathE"></span><span id="_CPPv2N19udCompareBPAOptions14pBaseModelPathE"></span><span id="udCompareBPAOptions::pBaseModelPath__cCP"></span><span class="target" id="structud_compare_b_p_a_options_1a08f694bd56c3fe51c3b83c166ef527b7"></span><em class="property">const</em> char *<code class="sig-name descname">pBaseModelPath</code><a class="headerlink" href="#_CPPv4N19udCompareBPAOptions14pBaseModelPathE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="member">
<dt id="_CPPv4N19udCompareBPAOptions20pComparisonModelPathE">
<span id="_CPPv3N19udCompareBPAOptions20pComparisonModelPathE"></span><span id="_CPPv2N19udCompareBPAOptions20pComparisonModelPathE"></span><span id="udCompareBPAOptions::pComparisonModelPath__cCP"></span><span class="target" id="structud_compare_b_p_a_options_1a90f226f9036282f56046c9f7916d7f65"></span><em class="property">const</em> char *<code class="sig-name descname">pComparisonModelPath</code><a class="headerlink" href="#_CPPv4N19udCompareBPAOptions20pComparisonModelPathE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The path to the UDS model that pComparisonModel will be compared against. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udCompareBPAOptions11pOutputNameE">
<span id="_CPPv3N19udCompareBPAOptions11pOutputNameE"></span><span id="_CPPv2N19udCompareBPAOptions11pOutputNameE"></span><span id="udCompareBPAOptions::pOutputName__cCP"></span><span class="target" id="structud_compare_b_p_a_options_1a900f2f63314739f04ae67c042e60479b"></span><em class="property">const</em> char *<code class="sig-name descname">pOutputName</code><a class="headerlink" href="#_CPPv4N19udCompareBPAOptions11pOutputNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The path to the UDS model for comparison. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N19udCompareBPAOptions14meshingOptionsE">
<span id="_CPPv3N19udCompareBPAOptions14meshingOptionsE"></span><span id="_CPPv2N19udCompareBPAOptions14meshingOptionsE"></span><span id="udCompareBPAOptions::meshingOptions__udMeshingBPAOptions"></span><span class="target" id="structud_compare_b_p_a_options_1a24349a89910ba95035008d3dcb3fb384"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv419udMeshingBPAOptions" title="udMeshingBPAOptions">udMeshingBPAOptions</a> <code class="sig-name descname">meshingOptions</code><a class="headerlink" href="#_CPPv4N19udCompareBPAOptions14meshingOptionsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The path that the displacement result UDS will be written to. </p>
</dd></dl>

</div>
</dd></dl>

</section>
</section>
<section id="helpers-to-talk-to-the-euclideon-server-or-other-websites">
<h2>Helpers to talk to the Euclideon Server or other websites<a class="headerlink" href="#helpers-to-talk-to-the-euclideon-server-or-other-websites" title="Permalink to this headline">¶</a></h2>
<section id="udweb">
<h3>udWeb<a class="headerlink" href="#udweb" title="Permalink to this headline">¶</a></h3>
<p>This is an optional helper module to assist with doing web requests. Internally it uses libcURL with the global settings (proxy and certificates information) from <code class="docutils literal notranslate"><span class="pre">udConfig</span></code>. As this is not a core module, it does not accept a <code class="docutils literal notranslate"><a class="reference internal" href="#structud_context"><span class="std std-ref"><span class="pre">udContext</span></span></a></code> and can be used without having a udServer available. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv411udWebMethod">
<span id="_CPPv311udWebMethod"></span><span id="_CPPv211udWebMethod"></span><span class="target" id="ud_web_8h_1a4e5f14ea31415d878c1e5c23e0aa2662"></span><em class="property">enum </em><code class="sig-name descname">udWebMethod</code><a class="headerlink" href="#_CPPv411udWebMethod" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the support HTTP method types in udWeb </p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv49udWM_HEAD">
<span id="_CPPv39udWM_HEAD"></span><span id="_CPPv29udWM_HEAD"></span><span class="target" id="ud_web_8h_1a4e5f14ea31415d878c1e5c23e0aa2662aac3b1df609ab33951770d3c2faaf2ce3"></span><code class="sig-name descname">udWM_HEAD</code> = 0x0<a class="headerlink" href="#_CPPv49udWM_HEAD" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Performs a HEAD request. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv48udWM_GET">
<span id="_CPPv38udWM_GET"></span><span id="_CPPv28udWM_GET"></span><span class="target" id="ud_web_8h_1a4e5f14ea31415d878c1e5c23e0aa2662a3129c4d10905552bc550cbf203be1361"></span><code class="sig-name descname">udWM_GET</code> = 0x1<a class="headerlink" href="#_CPPv48udWM_GET" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Performs a GET request. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udWM_POST">
<span id="_CPPv39udWM_POST"></span><span id="_CPPv29udWM_POST"></span><span class="target" id="ud_web_8h_1a4e5f14ea31415d878c1e5c23e0aa2662a313149f88f6f65ca529a8363b039527f"></span><code class="sig-name descname">udWM_POST</code> = 0x2<a class="headerlink" href="#_CPPv49udWM_POST" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Performs a POST request. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv413udWeb_RequestPKcPPKcP8uint64_tPi">
<span id="_CPPv313udWeb_RequestPKcPPKcP8uint64_tPi"></span><span id="_CPPv213udWeb_RequestPKcPPKcP8uint64_tPi"></span><span id="udWeb_Request__cCP.cCPP.uint64_tP.iP"></span><span class="target" id="ud_web_8h_1a0f5b0a18a99035b92f335c4c22ad4693"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udWeb_Request</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pURL</em>, <em class="property">const</em> char **<em>ppResponse</em>, uint64_t *<em>pResponseLength</em>, int *<em>pHTTPResponseCode</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv413udWeb_RequestPKcPPKcP8uint64_tPi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This sends a GET request to a given URL, the response (if any) is written to <code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the HTTP request. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>This function internally just calls <code class="docutils literal notranslate"><span class="pre">udWeb_RequestAdv</span></code> with the option members being zeroed, except for the method which is set to <code class="docutils literal notranslate"><span class="pre">udWM_GET</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pURL</span></code>: The URL to request. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>: This will be modified with a pointer to internal udSDK memory with the contents of the request. You must call <code class="docutils literal notranslate"><span class="pre">udWeb_ReleaseResponse</span></code> to free this memory. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pResponseLength</span></code>: If non-null, the pointer’s memory will be set to the length of <code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pHTTPResponseCode</span></code>: If non-null this will be set to the HTTP status code. See https ://www.ietf.org/assignments/http-status-codes/http-status-codes.xml for status codes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv416udWeb_RequestAdvPKc12udWebOptionsPPKcP8uint64_tPi">
<span id="_CPPv316udWeb_RequestAdvPKc12udWebOptionsPPKcP8uint64_tPi"></span><span id="_CPPv216udWeb_RequestAdvPKc12udWebOptionsPPKcP8uint64_tPi"></span><span id="udWeb_RequestAdv__cCP.udWebOptions.cCPP.uint64_tP.iP"></span><span class="target" id="ud_web_8h_1a7f6f5f4aa9fcef227d025d3066fc1784"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udWeb_RequestAdv</code><span class="sig-paren">(</span><em class="property">const</em> char *<em>pURL</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udWebOptions" title="udWebOptions">udWebOptions</a> <em>options</em>, <em class="property">const</em> char **<em>ppResponse</em>, uint64_t *<em>pResponseLength</em>, int *<em>pHTTPResponseCode</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416udWeb_RequestAdvPKc12udWebOptionsPPKcP8uint64_tPi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This sends a request to a given URL using the specified options, the response (if any) is written to <code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the HTTP request. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pURL</span></code>: The URL to request. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">options</span></code>: The options for the request, see above for details. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>: This will be modified with a pointer to internal udSDK memory with the contents of the request. You must call <code class="docutils literal notranslate"><span class="pre">udWeb_ReleaseResponse</span></code> to free this memory. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pResponseLength</span></code>: If non-null, the pointer’s memory will be set to the length of <code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pHTTPResponseCode</span></code>: If non-null this will be set to the HTTP status code. See https ://www.ietf.org/assignments/http-status-codes/http-status-codes.xml for status codes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv421udWeb_ReleaseResponsePPKc">
<span id="_CPPv321udWeb_ReleaseResponsePPKc"></span><span id="_CPPv221udWeb_ReleaseResponsePPKc"></span><span id="udWeb_ReleaseResponse__cCPP"></span><span class="target" id="ud_web_8h_1aaaac7232ad0353f97fc36d24fb7bbff0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udWeb_ReleaseResponse</code><span class="sig-paren">(</span><em class="property">const</em> char **<em>ppResponse</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421udWeb_ReleaseResponsePPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Frees memory of a prior call to <code class="docutils literal notranslate"><span class="pre">udWeb_Request</span></code> or <code class="docutils literal notranslate"><span class="pre">udWeb_RequestAdv</span></code>.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of releasing the HTTP response. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppResponse</span></code>: A pointer to a pointer containing the response from a prior call to <code class="docutils literal notranslate"><span class="pre">udWeb_Request</span></code> or <code class="docutils literal notranslate"><span class="pre">udWeb_RequestAdv</span></code>. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv412udWebOptions">
<span id="_CPPv312udWebOptions"></span><span id="_CPPv212udWebOptions"></span><span id="udWebOptions"></span><span class="target" id="structud_web_options"></span><em class="property">struct </em><code class="sig-name descname">udWebOptions</code><a class="headerlink" href="#_CPPv412udWebOptions" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udWeb.h&gt;</em><p>This structure stores the options for a udWeb request</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The default values for the members except <code class="docutils literal notranslate"><span class="pre">method</span></code> is <code class="docutils literal notranslate"><span class="pre">NULL</span></code> or <code class="docutils literal notranslate"><span class="pre">0</span></code>. </p>
</dd>
</dl>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N12udWebOptions6methodE">
<span id="_CPPv3N12udWebOptions6methodE"></span><span id="_CPPv2N12udWebOptions6methodE"></span><span id="udWebOptions::method__udWebMethod"></span><span class="target" id="structud_web_options_1a17af2a82abd950399c262a44d9906782"></span><a class="reference internal" href="#_CPPv411udWebMethod" title="udWebMethod">udWebMethod</a> <code class="sig-name descname">method</code><a class="headerlink" href="#_CPPv4N12udWebOptions6methodE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The HTTP method to use for the request. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udWebOptions9pPostDataE">
<span id="_CPPv3N12udWebOptions9pPostDataE"></span><span id="_CPPv2N12udWebOptions9pPostDataE"></span><span id="udWebOptions::pPostData__uint8_tCP"></span><span class="target" id="structud_web_options_1a5eb5e9b22aacb1b2b4f7909add5004e7"></span><em class="property">const</em> uint8_t *<code class="sig-name descname">pPostData</code><a class="headerlink" href="#_CPPv4N12udWebOptions9pPostDataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The data to send to the server as part of a POST request. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udWebOptions10postLengthE">
<span id="_CPPv3N12udWebOptions10postLengthE"></span><span id="_CPPv2N12udWebOptions10postLengthE"></span><span id="udWebOptions::postLength__uint64_t"></span><span class="target" id="structud_web_options_1ac7f56fee7a19ce2e83c8f6302b746da5"></span>uint64_t <code class="sig-name descname">postLength</code><a class="headerlink" href="#_CPPv4N12udWebOptions10postLengthE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The length of the data being sent to the server. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udWebOptions10rangeBeginE">
<span id="_CPPv3N12udWebOptions10rangeBeginE"></span><span id="_CPPv2N12udWebOptions10rangeBeginE"></span><span id="udWebOptions::rangeBegin__uint64_t"></span><span class="target" id="structud_web_options_1a128abd7e012296b45fa387ba76945858"></span>uint64_t <code class="sig-name descname">rangeBegin</code><a class="headerlink" href="#_CPPv4N12udWebOptions10rangeBeginE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the first byte in the requested file to receive data from. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udWebOptions8rangeEndE">
<span id="_CPPv3N12udWebOptions8rangeEndE"></span><span id="_CPPv2N12udWebOptions8rangeEndE"></span><span id="udWebOptions::rangeEnd__uint64_t"></span><span class="target" id="structud_web_options_1aea4e8ad958ea29dab50511684aef6389"></span>uint64_t <code class="sig-name descname">rangeEnd</code><a class="headerlink" href="#_CPPv4N12udWebOptions8rangeEndE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The position of the last byte in the requested file to receive data from. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udWebOptions13pAuthUsernameE">
<span id="_CPPv3N12udWebOptions13pAuthUsernameE"></span><span id="_CPPv2N12udWebOptions13pAuthUsernameE"></span><span id="udWebOptions::pAuthUsername__cCP"></span><span class="target" id="structud_web_options_1a05592e5051dfab8fcc63997030e13959"></span><em class="property">const</em> char *<code class="sig-name descname">pAuthUsername</code><a class="headerlink" href="#_CPPv4N12udWebOptions13pAuthUsernameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The username to use when authenticating with the server. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udWebOptions13pAuthPasswordE">
<span id="_CPPv3N12udWebOptions13pAuthPasswordE"></span><span id="_CPPv2N12udWebOptions13pAuthPasswordE"></span><span id="udWebOptions::pAuthPassword__cCP"></span><span class="target" id="structud_web_options_1a9ccb0af012f7fe664b56f949800e741f"></span><em class="property">const</em> char *<code class="sig-name descname">pAuthPassword</code><a class="headerlink" href="#_CPPv4N12udWebOptions13pAuthPasswordE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The password to use when authenticating with the server. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="udserverapi">
<h3>udServerAPI<a class="headerlink" href="#udserverapi" title="Permalink to this headline">¶</a></h3>
<p>The <strong>udServerAPI</strong> module provides an interface to communicate with a Euclideon udServer API directly in a simple fashion. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv417udServerAPI_QueryP9udContextPKcPKcPPKc">
<span id="_CPPv317udServerAPI_QueryP9udContextPKcPKcPPKc"></span><span id="_CPPv217udServerAPI_QueryP9udContextPKcPKcPPKc"></span><span id="udServerAPI_Query__udContextP.cCP.cCP.cCPP"></span><span class="target" id="ud_server_a_p_i_8h_1a457988fbf06b76dcbcef48114f45d323"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udServerAPI_Query</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">const</em> char *<em>pAPIAddress</em>, <em class="property">const</em> char *<em>pJSON</em>, <em class="property">const</em> char **<em>ppResult</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417udServerAPI_QueryP9udContextPKcPKcPPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Queries provided API on the specified Euclideon udServer.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the API query. </p>
</dd>
<dt><strong>Note</strong></dt><dd><p>The application should call <strong>udServerAPI_ReleaseResult</strong> with <code class="docutils literal notranslate"><span class="pre">ppResult</span></code> to destroy the data once it’s no longer needed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The context to execute the query with. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pAPIAddress</span></code>: The API address to query, this is the part of the address <em>after</em> <code class="docutils literal notranslate"><span class="pre">/api/</span></code>. The rest of the address is constructed from the context provided. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pJSON</span></code>: The JSON text to POST to the API address. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppResult</span></code>: A pointer to a location in which the result data is to be stored. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv425udServerAPI_ReleaseResultPPKc">
<span id="_CPPv325udServerAPI_ReleaseResultPPKc"></span><span id="_CPPv225udServerAPI_ReleaseResultPPKc"></span><span id="udServerAPI_ReleaseResult__cCPP"></span><span class="target" id="ud_server_a_p_i_8h_1a7f1f57685b4d781d67d00cf074311af0"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udServerAPI_ReleaseResult</code><span class="sig-paren">(</span><em class="property">const</em> char **<em>ppResult</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425udServerAPI_ReleaseResultPPKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the result that was allocated.</p>
<p><dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The value of <code class="docutils literal notranslate"><span class="pre">ppResult</span></code> will be set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppResult</span></code>: A pointer to a location in which the result data is stored. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
</section>
<section id="udcloud">
<h3>udCloud<a class="headerlink" href="#udcloud" title="Permalink to this headline">¶</a></h3>
<p>The <a class="reference internal" href="#structud_cloud_workspace"><span class="std std-ref">udCloudWorkspace</span></a> object provides an interface for accessing data of workspace hosted in udCloud </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv433udCloudWorkspace_GetWorkspaceListP9udContextPP16udCloudWorkspacePi">
<span id="_CPPv333udCloudWorkspace_GetWorkspaceListP9udContextPP16udCloudWorkspacePi"></span><span id="_CPPv233udCloudWorkspace_GetWorkspaceListP9udContextPP16udCloudWorkspacePi"></span><span id="udCloudWorkspace_GetWorkspaceList__udContextP.udCloudWorkspacePP.iP"></span><span class="target" id="ud_cloud_workspace_8h_1aed30981ec8662382d13545627c90d5fc"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudWorkspace_GetWorkspaceList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udCloudWorkspace" title="udCloudWorkspace">udCloudWorkspace</a> **<em>ppCloudWorkspaces</em>, int *<em>pCount</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433udCloudWorkspace_GetWorkspaceListP9udContextPP16udCloudWorkspacePi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a list of available Workspaces hosted in udCloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the query on udCloud. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudWorkspaces</span></code>: The pointer pointer of the <a class="reference internal" href="#structud_cloud_workspace"><span class="std std-ref">udCloudWorkspace</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCount</span></code>: The number of Workspace in ppCloudWorkspaces. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv437udCloudWorkspace_ReleaseWorkspaceListPP16udCloudWorkspacei">
<span id="_CPPv337udCloudWorkspace_ReleaseWorkspaceListPP16udCloudWorkspacei"></span><span id="_CPPv237udCloudWorkspace_ReleaseWorkspaceListPP16udCloudWorkspacei"></span><span id="udCloudWorkspace_ReleaseWorkspaceList__udCloudWorkspacePP.i"></span><span class="target" id="ud_cloud_workspace_8h_1a4568fb24528667c34873ec9e28cab6cc"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudWorkspace_ReleaseWorkspaceList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv416udCloudWorkspace" title="udCloudWorkspace">udCloudWorkspace</a> **<em>ppCloudWorkspaces</em>, int <em>count</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv437udCloudWorkspace_ReleaseWorkspaceListPP16udCloudWorkspacei" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the list of Workspaces that was created by udCloudWorkspace_GetWorkspaceList</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the memory been freed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudWorkspaces</span></code>: The list of Workspaces to be destroyed. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">count</span></code>: The number of <a class="reference internal" href="#structud_cloud_workspace"><span class="std std-ref">udCloudWorkspace</span></a> in ppCloudWorkspaces. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv431udCloudWorkspace_GetProjectListP9udContextP16udCloudWorkspacePP14udCloudProjectPi">
<span id="_CPPv331udCloudWorkspace_GetProjectListP9udContextP16udCloudWorkspacePP14udCloudProjectPi"></span><span id="_CPPv231udCloudWorkspace_GetProjectListP9udContextP16udCloudWorkspacePP14udCloudProjectPi"></span><span id="udCloudWorkspace_GetProjectList__udContextP.udCloudWorkspaceP.udCloudProjectPP.iP"></span><span class="target" id="ud_cloud_workspace_8h_1a92763ec59997326d8873fa18753a8e22"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudWorkspace_GetProjectList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv416udCloudWorkspace" title="udCloudWorkspace">udCloudWorkspace</a> *<em>pCloudWorkspace</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udCloudProject" title="udCloudProject">udCloudProject</a> **<em>ppCloudProjects</em>, int *<em>pCount</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431udCloudWorkspace_GetProjectListP9udContextP16udCloudWorkspacePP14udCloudProjectPi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a list of available Projects owned by a specific Workspace in udCloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the query on udCloud. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCloudWorkspace</span></code>: The pointer of the udCouldWorkspace. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudProjects</span></code>: A list of Projects returned. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCount</span></code>: The number of projects in ppCloudProject. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv435udCloudWorkspace_ReleaseProjectListPP14udCloudProjecti">
<span id="_CPPv335udCloudWorkspace_ReleaseProjectListPP14udCloudProjecti"></span><span id="_CPPv235udCloudWorkspace_ReleaseProjectListPP14udCloudProjecti"></span><span id="udCloudWorkspace_ReleaseProjectList__udCloudProjectPP.i"></span><span class="target" id="ud_cloud_workspace_8h_1a36b275c70e7150539145decabddc5b69"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudWorkspace_ReleaseProjectList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv414udCloudProject" title="udCloudProject">udCloudProject</a> **<em>ppCloudProjects</em>, int <em>count</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv435udCloudWorkspace_ReleaseProjectListPP14udCloudProjecti" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the list of Projects that was created by udCloudWorkspace_GetProjectList</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the memory been freed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudProjects</span></code>: The list of Projects to be destroyed. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">count</span></code>: The number of <a class="reference internal" href="#structud_cloud_project"><span class="std std-ref">udCloudProject</span></a> in ppCloudProjects. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv416udCloudWorkspace">
<span id="_CPPv316udCloudWorkspace"></span><span id="_CPPv216udCloudWorkspace"></span><span id="udCloudWorkspace"></span><span class="target" id="structud_cloud_workspace"></span><em class="property">struct </em><code class="sig-name descname">udCloudWorkspace</code><a class="headerlink" href="#_CPPv416udCloudWorkspace" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udCloudWorkspace.h&gt;</em><p>This represents a udCloud Workspace </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N16udCloudWorkspace2IDE">
<span id="_CPPv3N16udCloudWorkspace2IDE"></span><span id="_CPPv2N16udCloudWorkspace2IDE"></span><span id="udCloudWorkspace::ID__cA"></span><span class="target" id="structud_cloud_workspace_1ac81075a218cfea2e8510b9c5b77d60d2"></span>char <code class="sig-name descname">ID</code>[64]<a class="headerlink" href="#_CPPv4N16udCloudWorkspace2IDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The workspace id from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udCloudWorkspace5pNameE">
<span id="_CPPv3N16udCloudWorkspace5pNameE"></span><span id="_CPPv2N16udCloudWorkspace5pNameE"></span><span id="udCloudWorkspace::pName__cP"></span><span class="target" id="structud_cloud_workspace_1a2c5e853a10b80eb079bb4ee1e17e544d"></span>char *<code class="sig-name descname">pName</code><a class="headerlink" href="#_CPPv4N16udCloudWorkspace5pNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The name of the workspace. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udCloudWorkspace11permissionsE">
<span id="_CPPv3N16udCloudWorkspace11permissionsE"></span><span id="_CPPv2N16udCloudWorkspace11permissionsE"></span><span id="udCloudWorkspace::permissions__uint64_t"></span><span class="target" id="structud_cloud_workspace_1a0f8c202d05350c5d984cd73253ed03ac"></span>uint64_t <code class="sig-name descname">permissions</code><a class="headerlink" href="#_CPPv4N16udCloudWorkspace11permissionsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The permissions of this workspace. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udCloudWorkspace6volumeE">
<span id="_CPPv3N16udCloudWorkspace6volumeE"></span><span id="_CPPv2N16udCloudWorkspace6volumeE"></span><span id="udCloudWorkspace::volume__udCloudStorageVolume"></span><span class="target" id="structud_cloud_workspace_1ac471e7c49552fa2870c27919b6f61bd4"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv420udCloudStorageVolume" title="udCloudStorageVolume">udCloudStorageVolume</a> <code class="sig-name descname">volume</code><a class="headerlink" href="#_CPPv4N16udCloudWorkspace6volumeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Hot And Archives volume stored in udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udCloudWorkspace6isPAYGE">
<span id="_CPPv3N16udCloudWorkspace6isPAYGE"></span><span id="_CPPv2N16udCloudWorkspace6isPAYGE"></span><span id="udCloudWorkspace::isPAYG__uint32_t"></span><span class="target" id="structud_cloud_workspace_1a68e2e3116b39accaf6cca98e614675e7"></span>uint32_t <code class="sig-name descname">isPAYG</code><a class="headerlink" href="#_CPPv4N16udCloudWorkspace6isPAYGE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A flag for PAYG workspace. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N16udCloudWorkspace15isPendingDeleteE">
<span id="_CPPv3N16udCloudWorkspace15isPendingDeleteE"></span><span id="_CPPv2N16udCloudWorkspace15isPendingDeleteE"></span><span id="udCloudWorkspace::isPendingDelete__uint32_t"></span><span class="target" id="structud_cloud_workspace_1a57a91e3df8897e64e1ab0019fc5ba1ad"></span>uint32_t <code class="sig-name descname">isPendingDelete</code><a class="headerlink" href="#_CPPv4N16udCloudWorkspace15isPendingDeleteE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A flag to know if the workspace will be deleted shortly. </p>
</dd></dl>

</div>
</dd></dl>

<p>The <a class="reference internal" href="#structud_cloud_project"><span class="std std-ref">udCloudProject</span></a> object provide an interface for accessing data of projects hosted in udCloud </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv426udCloudProject_GetFileListP9udContextP14udCloudProjectPP11udCloudFilePi">
<span id="_CPPv326udCloudProject_GetFileListP9udContextP14udCloudProjectPP11udCloudFilePi"></span><span id="_CPPv226udCloudProject_GetFileListP9udContextP14udCloudProjectPP11udCloudFilePi"></span><span id="udCloudProject_GetFileList__udContextP.udCloudProjectP.udCloudFilePP.iP"></span><span class="target" id="ud_cloud_project_8h_1a4dde32b33c88bae1669fa54a0f4057b5"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudProject_GetFileList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udCloudProject" title="udCloudProject">udCloudProject</a> *<em>pCloudProject</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv411udCloudFile" title="udCloudFile">udCloudFile</a> **<em>ppCloudFiles</em>, int *<em>pCount</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426udCloudProject_GetFileListP9udContextP14udCloudProjectPP11udCloudFilePi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a list of available Files owned by a specific Project in udCloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the query on udCloud. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCloudProject</span></code>: The pointer of the <a class="reference internal" href="#structud_cloud_project"><span class="std std-ref">udCloudProject</span></a>. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudFiles</span></code>: A list of Files returned. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCount</span></code>: The number of Files in ppCloudFiles. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv430udCloudProject_ReleaseFileListPP11udCloudFilei">
<span id="_CPPv330udCloudProject_ReleaseFileListPP11udCloudFilei"></span><span id="_CPPv230udCloudProject_ReleaseFileListPP11udCloudFilei"></span><span id="udCloudProject_ReleaseFileList__udCloudFilePP.i"></span><span class="target" id="ud_cloud_project_8h_1a9cb3fd59f9215ebe3f7352734b0753ed"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudProject_ReleaseFileList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv411udCloudFile" title="udCloudFile">udCloudFile</a> **<em>ppCloudFiles</em>, int <em>count</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv430udCloudProject_ReleaseFileListPP11udCloudFilei" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the list of Files that was created by udCloudProject_GetFileList</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the memory been freed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudFiles</span></code>: The list of Files to be destroyed. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">count</span></code>: The number of Files in ppCloudFiles. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv427udCloudProject_GetSceneListP9udContextP14udCloudProjectPP12udCloudScenePi">
<span id="_CPPv327udCloudProject_GetSceneListP9udContextP14udCloudProjectPP12udCloudScenePi"></span><span id="_CPPv227udCloudProject_GetSceneListP9udContextP14udCloudProjectPP12udCloudScenePi"></span><span id="udCloudProject_GetSceneList__udContextP.udCloudProjectP.udCloudScenePP.iP"></span><span class="target" id="ud_cloud_project_8h_1ad654bcbdda86d4618dc5a0c9094fa4fc"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudProject_GetSceneList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udContext" title="udContext">udContext</a> *<em>pContext</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv414udCloudProject" title="udCloudProject">udCloudProject</a> *<em>pCloudProject</em>, <em class="property">struct</em> <a class="reference internal" href="#_CPPv412udCloudScene" title="udCloudScene">udCloudScene</a> **<em>ppCloudScenes</em>, int *<em>pCount</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427udCloudProject_GetSceneListP9udContextP14udCloudProjectPP12udCloudScenePi" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get a list of available scenes owned by a specific Project in udCloud</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of the query on udCLoud. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pContext</span></code>: The pointer to the <a class="reference internal" href="#structud_context"><span class="std std-ref">udContext</span></a> of the session to use </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCloudProject</span></code>: The pointer of the udCouldProject. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudScenes</span></code>: A list of Scenes returned. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pCount</span></code>: The number of scenes in ppCloudScenes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

<dl class="function">
<dt id="_CPPv431udCloudProject_ReleaseSceneListPP12udCloudScenei">
<span id="_CPPv331udCloudProject_ReleaseSceneListPP12udCloudScenei"></span><span id="_CPPv231udCloudProject_ReleaseSceneListPP12udCloudScenei"></span><span id="udCloudProject_ReleaseSceneList__udCloudScenePP.i"></span><span class="target" id="ud_cloud_project_8h_1a2d5469f8146ac8aec1466146c8d73938"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udCloudProject_ReleaseSceneList</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv412udCloudScene" title="udCloudScene">udCloudScene</a> **<em>ppCloudScenes</em>, int <em>count</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431udCloudProject_ReleaseSceneListPP12udCloudScenei" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destroys the list of Scenes that was created by udCloudProject_GetSceneList</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the memory been freed. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">ppCloudScenes</span></code>: The list of Scenes to be destroyed. </p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">count</span></code>: The number of Scenes in ppCloudScenes. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv420udCloudStorageVolume">
<span id="_CPPv320udCloudStorageVolume"></span><span id="_CPPv220udCloudStorageVolume"></span><span id="udCloudStorageVolume"></span><span class="target" id="structud_cloud_storage_volume"></span><em class="property">struct </em><code class="sig-name descname">udCloudStorageVolume</code><a class="headerlink" href="#_CPPv420udCloudStorageVolume" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udCloudProject.h&gt;</em><p>The values for Hot and Archive data in udCloud </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N20udCloudStorageVolume3hotE">
<span id="_CPPv3N20udCloudStorageVolume3hotE"></span><span id="_CPPv2N20udCloudStorageVolume3hotE"></span><span id="udCloudStorageVolume::hot__double"></span><span class="target" id="structud_cloud_storage_volume_1a69a9e329efcd083c22f53dcb0f0220a1"></span>double <code class="sig-name descname">hot</code><a class="headerlink" href="#_CPPv4N20udCloudStorageVolume3hotE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The amount of stored data in Hot. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N20udCloudStorageVolume7archiveE">
<span id="_CPPv3N20udCloudStorageVolume7archiveE"></span><span id="_CPPv2N20udCloudStorageVolume7archiveE"></span><span id="udCloudStorageVolume::archive__double"></span><span class="target" id="structud_cloud_storage_volume_1ad6750f1c65c6c2a323c245177b25cc64"></span>double <code class="sig-name descname">archive</code><a class="headerlink" href="#_CPPv4N20udCloudStorageVolume7archiveE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The amount of stored data in Archive. </p>
</dd></dl>

</div>
</dd></dl>

<dl class="class">
<dt id="_CPPv414udCloudProject">
<span id="_CPPv314udCloudProject"></span><span id="_CPPv214udCloudProject"></span><span id="udCloudProject"></span><span class="target" id="structud_cloud_project"></span><em class="property">struct </em><code class="sig-name descname">udCloudProject</code><a class="headerlink" href="#_CPPv414udCloudProject" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udCloudProject.h&gt;</em><p>This represents a udCloud Project </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N14udCloudProject2IDE">
<span id="_CPPv3N14udCloudProject2IDE"></span><span id="_CPPv2N14udCloudProject2IDE"></span><span id="udCloudProject::ID__cA"></span><span class="target" id="structud_cloud_project_1a3bdf6a20f60307e85755182773a92ae3"></span>char <code class="sig-name descname">ID</code>[64]<a class="headerlink" href="#_CPPv4N14udCloudProject2IDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The project id from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject5orgIDE">
<span id="_CPPv3N14udCloudProject5orgIDE"></span><span id="_CPPv2N14udCloudProject5orgIDE"></span><span id="udCloudProject::orgID__cA"></span><span class="target" id="structud_cloud_project_1a0088e0397534a796885eb190a83f005e"></span>char <code class="sig-name descname">orgID</code>[64]<a class="headerlink" href="#_CPPv4N14udCloudProject5orgIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The workspace it belongs to from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject5pNameE">
<span id="_CPPv3N14udCloudProject5pNameE"></span><span id="_CPPv2N14udCloudProject5pNameE"></span><span id="udCloudProject::pName__cP"></span><span class="target" id="structud_cloud_project_1a75702323774b38c4ca9fd74246db0911"></span>char *<code class="sig-name descname">pName</code><a class="headerlink" href="#_CPPv4N14udCloudProject5pNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The name of the project. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject7pRegionE">
<span id="_CPPv3N14udCloudProject7pRegionE"></span><span id="_CPPv2N14udCloudProject7pRegionE"></span><span id="udCloudProject::pRegion__cP"></span><span class="target" id="structud_cloud_project_1a7faad7fc7750e308b404886ce6314acc"></span>char *<code class="sig-name descname">pRegion</code><a class="headerlink" href="#_CPPv4N14udCloudProject7pRegionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The region the data is hosted on udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject9createdByE">
<span id="_CPPv3N14udCloudProject9createdByE"></span><span id="_CPPv2N14udCloudProject9createdByE"></span><span id="udCloudProject::createdBy__cA"></span><span class="target" id="structud_cloud_project_1a3ff86958bbb9c8cb74c5e033c4eec813"></span>char <code class="sig-name descname">createdBy</code>[64]<a class="headerlink" href="#_CPPv4N14udCloudProject9createdByE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The user id of the user who created this project. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject8pCreatedE">
<span id="_CPPv3N14udCloudProject8pCreatedE"></span><span id="_CPPv2N14udCloudProject8pCreatedE"></span><span id="udCloudProject::pCreated__cP"></span><span class="target" id="structud_cloud_project_1a4a924993fc02a30bb4d8bf8aa795acd4"></span>char *<code class="sig-name descname">pCreated</code><a class="headerlink" href="#_CPPv4N14udCloudProject8pCreatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The time this project was created. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject19optionalPermissionsE">
<span id="_CPPv3N14udCloudProject19optionalPermissionsE"></span><span id="_CPPv2N14udCloudProject19optionalPermissionsE"></span><span id="udCloudProject::optionalPermissions__uint64_t"></span><span class="target" id="structud_cloud_project_1ac28009462ac1f50a3e8061db90fce140"></span>uint64_t <code class="sig-name descname">optionalPermissions</code><a class="headerlink" href="#_CPPv4N14udCloudProject19optionalPermissionsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The permissions of this project. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject6volumeE">
<span id="_CPPv3N14udCloudProject6volumeE"></span><span id="_CPPv2N14udCloudProject6volumeE"></span><span id="udCloudProject::volume__udCloudStorageVolume"></span><span class="target" id="structud_cloud_project_1ae299fe9e7374f6a4fdeea60d6a4b0b97"></span><em class="property">struct</em> <a class="reference internal" href="#_CPPv420udCloudStorageVolume" title="udCloudStorageVolume">udCloudStorageVolume</a> <code class="sig-name descname">volume</code><a class="headerlink" href="#_CPPv4N14udCloudProject6volumeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Hot And Archives volume stored in udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N14udCloudProject14processingtimeE">
<span id="_CPPv3N14udCloudProject14processingtimeE"></span><span id="_CPPv2N14udCloudProject14processingtimeE"></span><span id="udCloudProject::processingtime__uint64_t"></span><span class="target" id="structud_cloud_project_1ad36709eb4008496dca720dfee1152605"></span>uint64_t <code class="sig-name descname">processingtime</code><a class="headerlink" href="#_CPPv4N14udCloudProject14processingtimeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The processing time used to convert. </p>
</dd></dl>

</div>
</dd></dl>

<p>The <a class="reference internal" href="#structud_cloud_scene"><span class="std std-ref">udCloudScene</span></a> object provide an interface for accessing data of Scenes hosted in udCloud </p>
<dl class="class">
<dt id="_CPPv412udCloudScene">
<span id="_CPPv312udCloudScene"></span><span id="_CPPv212udCloudScene"></span><span id="udCloudScene"></span><span class="target" id="structud_cloud_scene"></span><em class="property">struct </em><code class="sig-name descname">udCloudScene</code><a class="headerlink" href="#_CPPv412udCloudScene" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udCloudScene.h&gt;</em><p>This represents a udCloud Scene </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N12udCloudScene5pNameE">
<span id="_CPPv3N12udCloudScene5pNameE"></span><span id="_CPPv2N12udCloudScene5pNameE"></span><span id="udCloudScene::pName__cP"></span><span class="target" id="structud_cloud_scene_1a9422cf4cf1cce029875cd731f1e17249"></span>char *<code class="sig-name descname">pName</code><a class="headerlink" href="#_CPPv4N12udCloudScene5pNameE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The name of the Scene. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene2IDE">
<span id="_CPPv3N12udCloudScene2IDE"></span><span id="_CPPv2N12udCloudScene2IDE"></span><span id="udCloudScene::ID__cA"></span><span class="target" id="structud_cloud_scene_1aa5a88d703e82c5047044ed9052ba6bd1"></span>char <code class="sig-name descname">ID</code>[64]<a class="headerlink" href="#_CPPv4N12udCloudScene2IDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The sceneid from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene5orgIDE">
<span id="_CPPv3N12udCloudScene5orgIDE"></span><span id="_CPPv2N12udCloudScene5orgIDE"></span><span id="udCloudScene::orgID__cA"></span><span class="target" id="structud_cloud_scene_1ac02ecebfa34468791507f9a3224c0fcd"></span>char <code class="sig-name descname">orgID</code>[64]<a class="headerlink" href="#_CPPv4N12udCloudScene5orgIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The workspace it belongs to from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene6projIDE">
<span id="_CPPv3N12udCloudScene6projIDE"></span><span id="_CPPv2N12udCloudScene6projIDE"></span><span id="udCloudScene::projID__cA"></span><span class="target" id="structud_cloud_scene_1a23e063aa705566733843995897975f0d"></span>char <code class="sig-name descname">projID</code>[64]<a class="headerlink" href="#_CPPv4N12udCloudScene6projIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The project it belongs to from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene7pRegionE">
<span id="_CPPv3N12udCloudScene7pRegionE"></span><span id="_CPPv2N12udCloudScene7pRegionE"></span><span id="udCloudScene::pRegion__cP"></span><span class="target" id="structud_cloud_scene_1a1730ef7c972cb0a53e8b020beff5baec"></span>char *<code class="sig-name descname">pRegion</code><a class="headerlink" href="#_CPPv4N12udCloudScene7pRegionE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The region the data is hosted on udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene8pCreatedE">
<span id="_CPPv3N12udCloudScene8pCreatedE"></span><span id="_CPPv2N12udCloudScene8pCreatedE"></span><span id="udCloudScene::pCreated__cP"></span><span class="target" id="structud_cloud_scene_1ac07eb04688eb58307f06d35a8acfe590"></span>char *<code class="sig-name descname">pCreated</code><a class="headerlink" href="#_CPPv4N12udCloudScene8pCreatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The time this scene was created. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene12pLastUpdatedE">
<span id="_CPPv3N12udCloudScene12pLastUpdatedE"></span><span id="_CPPv2N12udCloudScene12pLastUpdatedE"></span><span id="udCloudScene::pLastUpdated__cP"></span><span class="target" id="structud_cloud_scene_1a1db8d1f4f7fc774d7573188bdce989d9"></span>char *<code class="sig-name descname">pLastUpdated</code><a class="headerlink" href="#_CPPv4N12udCloudScene12pLastUpdatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The time this scene was last updated. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene12pDeletedTimeE">
<span id="_CPPv3N12udCloudScene12pDeletedTimeE"></span><span id="_CPPv2N12udCloudScene12pDeletedTimeE"></span><span id="udCloudScene::pDeletedTime__cP"></span><span class="target" id="structud_cloud_scene_1a3cfb3e052a537072e93d0fa14275ff8e"></span>char *<code class="sig-name descname">pDeletedTime</code><a class="headerlink" href="#_CPPv4N12udCloudScene12pDeletedTimeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The time this scene was deleted. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene8isSharedE">
<span id="_CPPv3N12udCloudScene8isSharedE"></span><span id="_CPPv2N12udCloudScene8isSharedE"></span><span id="udCloudScene::isShared__uint32_t"></span><span class="target" id="structud_cloud_scene_1aa4322a6399c7fbd3de92164d726de4bb"></span>uint32_t <code class="sig-name descname">isShared</code><a class="headerlink" href="#_CPPv4N12udCloudScene8isSharedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Is the scene shared. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N12udCloudScene10pShortcodeE">
<span id="_CPPv3N12udCloudScene10pShortcodeE"></span><span id="_CPPv2N12udCloudScene10pShortcodeE"></span><span id="udCloudScene::pShortcode__cP"></span><span class="target" id="structud_cloud_scene_1ab945625c0efbf8085b914b93ec025d66"></span>char *<code class="sig-name descname">pShortcode</code><a class="headerlink" href="#_CPPv4N12udCloudScene10pShortcodeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The short code for this scene. </p>
</dd></dl>

</div>
</dd></dl>

<p>The <a class="reference internal" href="#structud_cloud_file"><span class="std std-ref">udCloudFile</span></a> object provide an interface for accessing data of files hosted in udCloud </p>
<dl class="class">
<dt id="_CPPv411udCloudFile">
<span id="_CPPv311udCloudFile"></span><span id="_CPPv211udCloudFile"></span><span id="udCloudFile"></span><span class="target" id="structud_cloud_file"></span><em class="property">struct </em><code class="sig-name descname">udCloudFile</code><a class="headerlink" href="#_CPPv411udCloudFile" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udCloudFile.h&gt;</em><p>This represents a udCloud File </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N11udCloudFile2IDE">
<span id="_CPPv3N11udCloudFile2IDE"></span><span id="_CPPv2N11udCloudFile2IDE"></span><span id="udCloudFile::ID__cA"></span><span class="target" id="structud_cloud_file_1a341e7fe90cae041bcdba4b56233a6713"></span>char <code class="sig-name descname">ID</code>[64]<a class="headerlink" href="#_CPPv4N11udCloudFile2IDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The id from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile6projIDE">
<span id="_CPPv3N11udCloudFile6projIDE"></span><span id="_CPPv2N11udCloudFile6projIDE"></span><span id="udCloudFile::projID__cA"></span><span class="target" id="structud_cloud_file_1a099fe26620a6a555b8b95f97eb9d79c2"></span>char <code class="sig-name descname">projID</code>[64]<a class="headerlink" href="#_CPPv4N11udCloudFile6projIDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The project id it belongs to from udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile5pPathE">
<span id="_CPPv3N11udCloudFile5pPathE"></span><span id="_CPPv2N11udCloudFile5pPathE"></span><span id="udCloudFile::pPath__cP"></span><span class="target" id="structud_cloud_file_1aeecf72dd2368d70cd02884fc95eabfb5"></span>char *<code class="sig-name descname">pPath</code><a class="headerlink" href="#_CPPv4N11udCloudFile5pPathE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The path of the udCloud File. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile8pCreatedE">
<span id="_CPPv3N11udCloudFile8pCreatedE"></span><span id="_CPPv2N11udCloudFile8pCreatedE"></span><span id="udCloudFile::pCreated__cP"></span><span class="target" id="structud_cloud_file_1a030f1416e7fbc396dc6e0f70bfb24dea"></span>char *<code class="sig-name descname">pCreated</code><a class="headerlink" href="#_CPPv4N11udCloudFile8pCreatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The time this udCloud File was created. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile5pTierE">
<span id="_CPPv3N11udCloudFile5pTierE"></span><span id="_CPPv2N11udCloudFile5pTierE"></span><span id="udCloudFile::pTier__cP"></span><span class="target" id="structud_cloud_file_1ae6f53cab54dba4c1cf0d1c42b315a70d"></span>char *<code class="sig-name descname">pTier</code><a class="headerlink" href="#_CPPv4N11udCloudFile5pTierE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The tier where this udCloud File is stored in udCloud. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile11pTimeToLiveE">
<span id="_CPPv3N11udCloudFile11pTimeToLiveE"></span><span id="_CPPv2N11udCloudFile11pTimeToLiveE"></span><span id="udCloudFile::pTimeToLive__cP"></span><span class="target" id="structud_cloud_file_1a7c4ecd55a310b38948c5d5f94b3c7fee"></span>char *<code class="sig-name descname">pTimeToLive</code><a class="headerlink" href="#_CPPv4N11udCloudFile11pTimeToLiveE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>If the udCloud File will be auto-deleted this is the timestamp for when that will occur. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile4sizeE">
<span id="_CPPv3N11udCloudFile4sizeE"></span><span id="_CPPv2N11udCloudFile4sizeE"></span><span id="udCloudFile::size__uint64_t"></span><span class="target" id="structud_cloud_file_1abe9f9edab1e1b1d7bc07bc83dc76db95"></span>uint64_t <code class="sig-name descname">size</code><a class="headerlink" href="#_CPPv4N11udCloudFile4sizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The size of the udCloud File. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile8isFolderE">
<span id="_CPPv3N11udCloudFile8isFolderE"></span><span id="_CPPv2N11udCloudFile8isFolderE"></span><span id="udCloudFile::isFolder__uint32_t"></span><span class="target" id="structud_cloud_file_1a63ea4335039d45895f53cd46ceed48c3"></span>uint32_t <code class="sig-name descname">isFolder</code><a class="headerlink" href="#_CPPv4N11udCloudFile8isFolderE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>!= 0 if the udCloud File is a folder </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N11udCloudFile8isSharedE">
<span id="_CPPv3N11udCloudFile8isSharedE"></span><span id="_CPPv2N11udCloudFile8isSharedE"></span><span id="udCloudFile::isShared__uint32_t"></span><span class="target" id="structud_cloud_file_1a42e6834b100059e78855225c23778ebb"></span>uint32_t <code class="sig-name descname">isShared</code><a class="headerlink" href="#_CPPv4N11udCloudFile8isSharedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>!= 0 if the udCloud File is shared </p>
</dd></dl>

</div>
</dd></dl>

</section>
</section>
<section id="verifying-udsdk-version">
<h2>Verifying udSDK Version<a class="headerlink" href="#verifying-udsdk-version" title="Permalink to this headline">¶</a></h2>
<p>The <strong><a class="reference internal" href="#structud_version"><span class="std std-ref">udVersion</span></a></strong> object provides an interface to query the version of the loaded udSDK library. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Defines</p>
<dl class="macro">
<dt id="c.UDSDK_MAJOR_VERSION">
<span class="target" id="ud_version_8h_1a551d44a3c8a57a8dd961ccbf6301c9f2"></span><code class="sig-name descname">UDSDK_MAJOR_VERSION</code><a class="headerlink" href="#c.UDSDK_MAJOR_VERSION" title="Permalink to this definition">¶</a></dt>
<dd><p>The major version part of the library version. </p>
</dd></dl>

<dl class="macro">
<dt id="c.UDSDK_MINOR_VERSION">
<span class="target" id="ud_version_8h_1ac7c0c0d8e1733ed55575d22f05b7e033"></span><code class="sig-name descname">UDSDK_MINOR_VERSION</code><a class="headerlink" href="#c.UDSDK_MINOR_VERSION" title="Permalink to this definition">¶</a></dt>
<dd><p>The minor version part of the library version. </p>
</dd></dl>

<dl class="macro">
<dt id="c.UDSDK_PATCH_VERSION">
<span class="target" id="ud_version_8h_1a69514bfc8e6bce8909bb810b6cc9ccd7"></span><code class="sig-name descname">UDSDK_PATCH_VERSION</code><a class="headerlink" href="#c.UDSDK_PATCH_VERSION" title="Permalink to this definition">¶</a></dt>
<dd><p>The patch version part of the library version. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv420udVersion_GetVersionP9udVersion">
<span id="_CPPv320udVersion_GetVersionP9udVersion"></span><span id="_CPPv220udVersion_GetVersionP9udVersion"></span><span id="udVersion_GetVersion__udVersionP"></span><span class="target" id="ud_version_8h_1ac2ac9fc0863a54c71aeac4ef785b761e"></span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <code class="sig-name descname">udVersion_GetVersion</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv49udVersion" title="udVersion">udVersion</a> *<em>pVersion</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420udVersion_GetVersionP9udVersion" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Populates the provided structure with the version information for the loaded udSDK library.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A udError value based on the result of getting the version information. </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">pVersion</span></code>: The version structure which will be populated with the version information. </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
<dl class="class">
<dt id="_CPPv49udVersion">
<span id="_CPPv39udVersion"></span><span id="_CPPv29udVersion"></span><span id="udVersion"></span><span class="target" id="structud_version"></span><em class="property">struct </em><code class="sig-name descname">udVersion</code><a class="headerlink" href="#_CPPv49udVersion" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;udVersion.h&gt;</em><p>Stores the version information for the loaded udSDK library. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Public Members</p>
<dl class="member">
<dt id="_CPPv4N9udVersion5majorE">
<span id="_CPPv3N9udVersion5majorE"></span><span id="_CPPv2N9udVersion5majorE"></span><span id="udVersion::major__uint8_t"></span><span class="target" id="structud_version_1aa4428259b501dd9b7d92d92c1b48ba05"></span>uint8_t <code class="sig-name descname">major</code><a class="headerlink" href="#_CPPv4N9udVersion5majorE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The major version part of the library version. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N9udVersion5minorE">
<span id="_CPPv3N9udVersion5minorE"></span><span id="_CPPv2N9udVersion5minorE"></span><span id="udVersion::minor__uint8_t"></span><span class="target" id="structud_version_1a92735a3678b9f135736efd989975af0a"></span>uint8_t <code class="sig-name descname">minor</code><a class="headerlink" href="#_CPPv4N9udVersion5minorE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The minor version part of the library version. </p>
</dd></dl>

<dl class="member">
<dt id="_CPPv4N9udVersion5patchE">
<span id="_CPPv3N9udVersion5patchE"></span><span id="_CPPv2N9udVersion5patchE"></span><span id="udVersion::patch__uint8_t"></span><span class="target" id="structud_version_1af7f53efb0f9125a6444ce14ae0a6555d"></span>uint8_t <code class="sig-name descname">patch</code><a class="headerlink" href="#_CPPv4N9udVersion5patchE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The patch version part of the library version. </p>
</dd></dl>

</div>
</dd></dl>

</section>
<section id="error-codes">
<h2>Error Codes<a class="headerlink" href="#error-codes" title="Permalink to this headline">¶</a></h2>
<p>These are the shared return codes from most udSDK functions </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Defines</p>
<dl class="macro">
<dt id="c.UD_ERROR_VERSION">
<span class="target" id="ud_error_8h_1ad728f2b7ae94871e605a9fbb1440318f"></span><code class="sig-name descname">UD_ERROR_VERSION</code><a class="headerlink" href="#c.UD_ERROR_VERSION" title="Permalink to this definition">¶</a></dt>
<dd><p>When used with the udCore library the udError codes are interchangable with the udResult codes when this version number matches. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Enums</p>
<dl class="enum">
<dt id="_CPPv47udError">
<span id="_CPPv37udError"></span><span id="_CPPv27udError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299"></span><em class="property">enum </em><code class="sig-name descname">udError</code><a class="headerlink" href="#_CPPv47udError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>These are the various error codes returned by udSDK functions <dl class="simple">
<dt><strong>Note</strong></dt><dd><p>The <code class="docutils literal notranslate"><span class="pre">0</span></code> value is success, this is different to many C APIs and as such <code class="docutils literal notranslate"><span class="pre">if(udFunction()</span> <span class="pre">==</span> <span class="pre">udE_Success)</span></code> is required to handle success cases. </p>
</dd>
</dl>
</p>
<p><em>Values:</em></p>
<dl class="enumerator">
<dt id="_CPPv411udE_Success">
<span id="_CPPv311udE_Success"></span><span id="_CPPv211udE_Success"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a5743497940e6bd46154f05b587541372"></span><code class="sig-name descname">udE_Success</code><a class="headerlink" href="#_CPPv411udE_Success" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Indicates the operation was successful. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udE_Failure">
<span id="_CPPv311udE_Failure"></span><span id="_CPPv211udE_Failure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299add75d0f7f7bc749ed9a0ad6cd7095aa1"></span><code class="sig-name descname">udE_Failure</code><a class="headerlink" href="#_CPPv411udE_Failure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A catch-all value that is rarely used, internally the below values are favored. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_NothingToDo">
<span id="_CPPv315udE_NothingToDo"></span><span id="_CPPv215udE_NothingToDo"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299afae22c1e6353f50e2bbf2c7d8b803eb3"></span><code class="sig-name descname">udE_NothingToDo</code><a class="headerlink" href="#_CPPv415udE_NothingToDo" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The operation didn’t specifically fail but it also didn’t do anything. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udE_InternalError">
<span id="_CPPv317udE_InternalError"></span><span id="_CPPv217udE_InternalError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a394e6fb95a64b7883bd0727aeca0f5e6"></span><code class="sig-name descname">udE_InternalError</code><a class="headerlink" href="#_CPPv417udE_InternalError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There was an internal error that could not be handled. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udE_NotInitialized">
<span id="_CPPv318udE_NotInitialized"></span><span id="_CPPv218udE_NotInitialized"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299acb4871d9c3abfa44019b963db1dd8078"></span><code class="sig-name descname">udE_NotInitialized</code><a class="headerlink" href="#_CPPv418udE_NotInitialized" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The request can’t be processed because an object hasn’t been configured yet. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udE_InvalidConfiguration">
<span id="_CPPv324udE_InvalidConfiguration"></span><span id="_CPPv224udE_InvalidConfiguration"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299af02bd87723df3f91d64cc3314006feb6"></span><code class="sig-name descname">udE_InvalidConfiguration</code><a class="headerlink" href="#_CPPv424udE_InvalidConfiguration" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Something in the request is not correctly configured or has conflicting settings. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udE_InvalidParameter">
<span id="_CPPv320udE_InvalidParameter"></span><span id="_CPPv220udE_InvalidParameter"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a400eea1cd58d2a892dabb0b1c474f3a0"></span><code class="sig-name descname">udE_InvalidParameter</code><a class="headerlink" href="#_CPPv420udE_InvalidParameter" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>One or more parameters is not of the expected format. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udE_OutstandingReferences">
<span id="_CPPv325udE_OutstandingReferences"></span><span id="_CPPv225udE_OutstandingReferences"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299add2c5b91c52b93e1cc2c5c4c53d59a21"></span><code class="sig-name descname">udE_OutstandingReferences</code><a class="headerlink" href="#_CPPv425udE_OutstandingReferences" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation failed because there are still references to this object. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv427udE_MemoryAllocationFailure">
<span id="_CPPv327udE_MemoryAllocationFailure"></span><span id="_CPPv227udE_MemoryAllocationFailure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a4237b21c830dae73a84ad0c86a08506c"></span><code class="sig-name descname">udE_MemoryAllocationFailure</code><a class="headerlink" href="#_CPPv427udE_MemoryAllocationFailure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>udSDK wasn’t able to allocate enough memory for the requested feature </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udE_CountExceeded">
<span id="_CPPv317udE_CountExceeded"></span><span id="_CPPv217udE_CountExceeded"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299aa6300d24be782b4deaae2a9bd3ad5ed4"></span><code class="sig-name descname">udE_CountExceeded</code><a class="headerlink" href="#_CPPv417udE_CountExceeded" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An internal count was exceeded by the request, generally going beyond the end of a buffer or internal limit. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv412udE_NotFound">
<span id="_CPPv312udE_NotFound"></span><span id="_CPPv212udE_NotFound"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a60a322899ea065b1f39ebda2247eb225"></span><code class="sig-name descname">udE_NotFound</code><a class="headerlink" href="#_CPPv412udE_NotFound" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested item wasn’t found or isn’t currently available. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udE_BufferTooSmall">
<span id="_CPPv318udE_BufferTooSmall"></span><span id="_CPPv218udE_BufferTooSmall"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ae75e48c27d9cfbfd0667fc37b91fd576"></span><code class="sig-name descname">udE_BufferTooSmall</code><a class="headerlink" href="#_CPPv418udE_BufferTooSmall" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Either the provided buffer or an internal one wasn’t big enough to fufill the request. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv431udE_FormatVariationNotSupported">
<span id="_CPPv331udE_FormatVariationNotSupported"></span><span id="_CPPv231udE_FormatVariationNotSupported"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299acc8ad447d653a58f985bffc2c4fd2dc7"></span><code class="sig-name descname">udE_FormatVariationNotSupported</code><a class="headerlink" href="#_CPPv431udE_FormatVariationNotSupported" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The supplied item is an unsupported variant of a supported format. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv422udE_ObjectTypeMismatch">
<span id="_CPPv322udE_ObjectTypeMismatch"></span><span id="_CPPv222udE_ObjectTypeMismatch"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299abc43263f3c212bc744f9d5ed84debb78"></span><code class="sig-name descname">udE_ObjectTypeMismatch</code><a class="headerlink" href="#_CPPv422udE_ObjectTypeMismatch" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There was a mismatch between what was expected and what was found. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_CorruptData">
<span id="_CPPv315udE_CorruptData"></span><span id="_CPPv215udE_CorruptData"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ad594d35c5e204567aa9755c63ccd3bbe"></span><code class="sig-name descname">udE_CorruptData</code><a class="headerlink" href="#_CPPv415udE_CorruptData" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The data/file was corrupt. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udE_InputExhausted">
<span id="_CPPv318udE_InputExhausted"></span><span id="_CPPv218udE_InputExhausted"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a4876ecfee87c30f827334b288408860d"></span><code class="sig-name descname">udE_InputExhausted</code><a class="headerlink" href="#_CPPv418udE_InputExhausted" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The input buffer was exhausted so no more processing can occur. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv419udE_OutputExhausted">
<span id="_CPPv319udE_OutputExhausted"></span><span id="_CPPv219udE_OutputExhausted"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299aa6a051a3faeb98295cd41f4dc1590823"></span><code class="sig-name descname">udE_OutputExhausted</code><a class="headerlink" href="#_CPPv419udE_OutputExhausted" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The output buffer was exhausted so no more processing can occur. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udE_CompressionError">
<span id="_CPPv320udE_CompressionError"></span><span id="_CPPv220udE_CompressionError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299aa635786276e5e285f7997e7d561f2c2e"></span><code class="sig-name descname">udE_CompressionError</code><a class="headerlink" href="#_CPPv420udE_CompressionError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There was an error in compression or decompression. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_Unsupported">
<span id="_CPPv315udE_Unsupported"></span><span id="_CPPv215udE_Unsupported"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ad03017f13f2c0b197a74f93c21d6ab35"></span><code class="sig-name descname">udE_Unsupported</code><a class="headerlink" href="#_CPPv415udE_Unsupported" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This functionality has not yet been implemented (usually some combination of inputs isn’t compatible yet) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udE_Timeout">
<span id="_CPPv311udE_Timeout"></span><span id="_CPPv211udE_Timeout"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a61138704996da289433a8f6a543233dd"></span><code class="sig-name descname">udE_Timeout</code><a class="headerlink" href="#_CPPv411udE_Timeout" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation timed out. Trying again later may be successful. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udE_AlignmentRequired">
<span id="_CPPv321udE_AlignmentRequired"></span><span id="_CPPv221udE_AlignmentRequired"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299aa92473a89bbab76160967aa260276b34"></span><code class="sig-name descname">udE_AlignmentRequired</code><a class="headerlink" href="#_CPPv421udE_AlignmentRequired" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Memory alignment was required for the operation. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udE_DecryptionKeyRequired">
<span id="_CPPv325udE_DecryptionKeyRequired"></span><span id="_CPPv225udE_DecryptionKeyRequired"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a7bda1d8f5eb8e6353f7926ef1d9cb8d9"></span><code class="sig-name descname">udE_DecryptionKeyRequired</code><a class="headerlink" href="#_CPPv425udE_DecryptionKeyRequired" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A decryption key is required and wasn’t provided. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv425udE_DecryptionKeyMismatch">
<span id="_CPPv325udE_DecryptionKeyMismatch"></span><span id="_CPPv225udE_DecryptionKeyMismatch"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a21e910c42c2d52c8c32abd4050bc7494"></span><code class="sig-name descname">udE_DecryptionKeyMismatch</code><a class="headerlink" href="#_CPPv425udE_DecryptionKeyMismatch" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The provided decryption key wasn’t the required one. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udE_SignatureMismatch">
<span id="_CPPv321udE_SignatureMismatch"></span><span id="_CPPv221udE_SignatureMismatch"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299abf873e033e1a14db62b8ebd58b066a52"></span><code class="sig-name descname">udE_SignatureMismatch</code><a class="headerlink" href="#_CPPv421udE_SignatureMismatch" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The digital signature did not match the expected signature. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udE_ObjectExpired">
<span id="_CPPv317udE_ObjectExpired"></span><span id="_CPPv217udE_ObjectExpired"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ad63de447e94f9fc385e3529fb71472a6"></span><code class="sig-name descname">udE_ObjectExpired</code><a class="headerlink" href="#_CPPv417udE_ObjectExpired" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The supplied object has expired. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udE_ParseError">
<span id="_CPPv314udE_ParseError"></span><span id="_CPPv214udE_ParseError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a49324ad2513d442974b2a9f8c3ae23fe"></span><code class="sig-name descname">udE_ParseError</code><a class="headerlink" href="#_CPPv414udE_ParseError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A requested resource or input was unable to be parsed. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv423udE_InternalCryptoError">
<span id="_CPPv323udE_InternalCryptoError"></span><span id="_CPPv223udE_InternalCryptoError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a1431d9c7ac76408b416d095668d135c4"></span><code class="sig-name descname">udE_InternalCryptoError</code><a class="headerlink" href="#_CPPv423udE_InternalCryptoError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There was a low level cryptography issue. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udE_OutOfOrder">
<span id="_CPPv314udE_OutOfOrder"></span><span id="_CPPv214udE_OutOfOrder"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a33721127cb45582d46e379e51442996f"></span><code class="sig-name descname">udE_OutOfOrder</code><a class="headerlink" href="#_CPPv414udE_OutOfOrder" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There were inputs that were provided out of order. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udE_OutOfRange">
<span id="_CPPv314udE_OutOfRange"></span><span id="_CPPv214udE_OutOfRange"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a28841d5c99ec97887c55c03b10e3f744"></span><code class="sig-name descname">udE_OutOfRange</code><a class="headerlink" href="#_CPPv414udE_OutOfRange" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The inputs were outside the expected range. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv422udE_CalledMoreThanOnce">
<span id="_CPPv322udE_CalledMoreThanOnce"></span><span id="_CPPv222udE_CalledMoreThanOnce"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ab57bf3d11f57e8d29adaa6d51311ca1a"></span><code class="sig-name descname">udE_CalledMoreThanOnce</code><a class="headerlink" href="#_CPPv422udE_CalledMoreThanOnce" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This function was already called. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv420udE_ImageLoadFailure">
<span id="_CPPv320udE_ImageLoadFailure"></span><span id="_CPPv220udE_ImageLoadFailure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a18205c398feaf15012bac801d64100c5"></span><code class="sig-name descname">udE_ImageLoadFailure</code><a class="headerlink" href="#_CPPv420udE_ImageLoadFailure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An image was unable to be parsed. This is usually an indication of either a corrupt or unsupported image format. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv426udE_StreamerNotInitialised">
<span id="_CPPv326udE_StreamerNotInitialised"></span><span id="_CPPv226udE_StreamerNotInitialised"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a5b868b8e57dcf290dfb869f746fde732"></span><code class="sig-name descname">udE_StreamerNotInitialised</code><a class="headerlink" href="#_CPPv426udE_StreamerNotInitialised" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The streamer needs to be initialised before this function can be called. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_OpenFailure">
<span id="_CPPv315udE_OpenFailure"></span><span id="_CPPv215udE_OpenFailure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a3cfcbfc1dd12f7bdd9f2bdcf398ba374"></span><code class="sig-name descname">udE_OpenFailure</code><a class="headerlink" href="#_CPPv415udE_OpenFailure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested resource was unable to be opened. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udE_CloseFailure">
<span id="_CPPv316udE_CloseFailure"></span><span id="_CPPv216udE_CloseFailure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a291a99c53c48899e119708ee5fe41d1c"></span><code class="sig-name descname">udE_CloseFailure</code><a class="headerlink" href="#_CPPv416udE_CloseFailure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The resource was unable to be closed. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_ReadFailure">
<span id="_CPPv315udE_ReadFailure"></span><span id="_CPPv215udE_ReadFailure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a8cd38378484872642a85a0a476ad999f"></span><code class="sig-name descname">udE_ReadFailure</code><a class="headerlink" href="#_CPPv415udE_ReadFailure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A requested resource was unable to be read. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv416udE_WriteFailure">
<span id="_CPPv316udE_WriteFailure"></span><span id="_CPPv216udE_WriteFailure"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a51ec689f5818737f6aac39f3b595b4bd"></span><code class="sig-name descname">udE_WriteFailure</code><a class="headerlink" href="#_CPPv416udE_WriteFailure" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A requested resource was unable to be written. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_SocketError">
<span id="_CPPv315udE_SocketError"></span><span id="_CPPv215udE_SocketError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ad92e3f63a207976f887c32c55383e9a1"></span><code class="sig-name descname">udE_SocketError</code><a class="headerlink" href="#_CPPv415udE_SocketError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There was an issue with a socket problem. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv417udE_DatabaseError">
<span id="_CPPv317udE_DatabaseError"></span><span id="_CPPv217udE_DatabaseError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299ae62909d363e67fd850b2f68c8c2a5173"></span><code class="sig-name descname">udE_DatabaseError</code><a class="headerlink" href="#_CPPv417udE_DatabaseError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A database error occurred. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_ServerError">
<span id="_CPPv315udE_ServerError"></span><span id="_CPPv215udE_ServerError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a80ca0f7bbda92f0fd9c1080156a5b1ea"></span><code class="sig-name descname">udE_ServerError</code><a class="headerlink" href="#_CPPv415udE_ServerError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The server reported an error trying to complete the request. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udE_AuthError">
<span id="_CPPv313udE_AuthError"></span><span id="_CPPv213udE_AuthError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a84f6d48a4aea7caf141fd95d91f9c2bd"></span><code class="sig-name descname">udE_AuthError</code><a class="headerlink" href="#_CPPv413udE_AuthError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The provided credentials were declined (usually email or password issue) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udE_NotAllowed">
<span id="_CPPv314udE_NotAllowed"></span><span id="_CPPv214udE_NotAllowed"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a3e772f152ee5d8195594414a0e6e3e0b"></span><code class="sig-name descname">udE_NotAllowed</code><a class="headerlink" href="#_CPPv414udE_NotAllowed" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation is not allowed (usually this is because the operation isn’t allowed in the current state) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udE_InvalidLicense">
<span id="_CPPv318udE_InvalidLicense"></span><span id="_CPPv218udE_InvalidLicense"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299aeef3a91e281c8e42ce85d3ce5cc5269c"></span><code class="sig-name descname">udE_InvalidLicense</code><a class="headerlink" href="#_CPPv418udE_InvalidLicense" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The required license isn’t available or has expired. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv411udE_Pending">
<span id="_CPPv311udE_Pending"></span><span id="_CPPv211udE_Pending"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a4f3692c738dcfc9387cf1dc2f661f2d6"></span><code class="sig-name descname">udE_Pending</code><a class="headerlink" href="#_CPPv411udE_Pending" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A requested operation is pending. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udE_Cancelled">
<span id="_CPPv313udE_Cancelled"></span><span id="_CPPv213udE_Cancelled"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299afa442e779b0b8a21c994f527df5f0416"></span><code class="sig-name descname">udE_Cancelled</code><a class="headerlink" href="#_CPPv413udE_Cancelled" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation was cancelled (usually by the user) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv413udE_OutOfSync">
<span id="_CPPv313udE_OutOfSync"></span><span id="_CPPv213udE_OutOfSync"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a2153ae2951f7ea85866dee8cd3e33dc6"></span><code class="sig-name descname">udE_OutOfSync</code><a class="headerlink" href="#_CPPv413udE_OutOfSync" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There is an inconsistency between the internal udSDK state and something external. This is usually because of a time difference between the local machine and a remote server. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv418udE_SessionExpired">
<span id="_CPPv318udE_SessionExpired"></span><span id="_CPPv218udE_SessionExpired"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299acad7217cbef9690895067aad955eeeb8"></span><code class="sig-name descname">udE_SessionExpired</code><a class="headerlink" href="#_CPPv418udE_SessionExpired" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The udServer has terminated your session. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udE_ProxyError">
<span id="_CPPv314udE_ProxyError"></span><span id="_CPPv214udE_ProxyError"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a4f90cadb185e55069b58f7e45b1aad0c"></span><code class="sig-name descname">udE_ProxyError</code><a class="headerlink" href="#_CPPv414udE_ProxyError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>There was some issue with the provided proxy information (either a proxy is in the way or the provided proxy info wasn’t correct) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv421udE_ProxyAuthRequired">
<span id="_CPPv321udE_ProxyAuthRequired"></span><span id="_CPPv221udE_ProxyAuthRequired"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299aaf5afd38d2f9e9fd8d20d3e64d880551"></span><code class="sig-name descname">udE_ProxyAuthRequired</code><a class="headerlink" href="#_CPPv421udE_ProxyAuthRequired" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A proxy has requested authentication. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv424udE_ExceededAllowedLimit">
<span id="_CPPv324udE_ExceededAllowedLimit"></span><span id="_CPPv224udE_ExceededAllowedLimit"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a28f4009b40bb95d4ec2ed7ad2e5049f3"></span><code class="sig-name descname">udE_ExceededAllowedLimit</code><a class="headerlink" href="#_CPPv424udE_ExceededAllowedLimit" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation failed because it would exceed the allowed limits (generally used for exceeding server limits like number of projects) </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_RateLimited">
<span id="_CPPv315udE_RateLimited"></span><span id="_CPPv215udE_RateLimited"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299add5df64030f5a96544b29bf7a46a69e6"></span><code class="sig-name descname">udE_RateLimited</code><a class="headerlink" href="#_CPPv415udE_RateLimited" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>This functionality is currently being rate limited or has exhausted a shared resource. Trying again later may be successful. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv415udE_PremiumOnly">
<span id="_CPPv315udE_PremiumOnly"></span><span id="_CPPv215udE_PremiumOnly"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a88caf62df7cec0f9cb8b73302201a180"></span><code class="sig-name descname">udE_PremiumOnly</code><a class="headerlink" href="#_CPPv415udE_PremiumOnly" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation failed because the current session is not for a premium user. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv414udE_InProgress">
<span id="_CPPv314udE_InProgress"></span><span id="_CPPv214udE_InProgress"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299a5a9611b7f07a77042be72c7e53c6ac27"></span><code class="sig-name descname">udE_InProgress</code><a class="headerlink" href="#_CPPv414udE_InProgress" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The requested operation is currently in progress. </p>
</dd></dl>

<dl class="enumerator">
<dt id="_CPPv49udE_Count">
<span id="_CPPv39udE_Count"></span><span id="_CPPv29udE_Count"></span><span class="target" id="ud_error_8h_1ab3c1ad66970f11c5e4bfcc79b7cca299acd8e90778a03d05978301fced5f25310"></span><code class="sig-name descname">udE_Count</code><a class="headerlink" href="#_CPPv49udE_Count" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Internally used to verify return values. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Functions</p>
<dl class="function">
<dt id="_CPPv422udError_GetErrorString7udError">
<span id="_CPPv322udError_GetErrorString7udError"></span><span id="_CPPv222udError_GetErrorString7udError"></span><span id="udError_GetErrorString__udError"></span><span class="target" id="ud_error_8h_1a99a6b089073cb5d9dbee8f6d504d753a"></span><em class="property">const</em> char *<code class="sig-name descname">udError_GetErrorString</code><span class="sig-paren">(</span><em class="property">enum</em> <a class="reference internal" href="#_CPPv47udError" title="udError">udError</a> <em>errorCode</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422udError_GetErrorString7udError" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Gets the udError enum value as a string value.</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>A string representing the suppplied errorCode. This memory is owned by udSDK and does not need to be returned or freed and should not be modified </p>
</dd>
<dt><strong>Parameters</strong></dt><dd><ul class="breatheparameterlist simple">
<li><p><code class="docutils literal notranslate"><span class="pre">errorCode</span></code>: The error code </p></li>
</ul>
</dd>
</dl>
</p>
</dd></dl>

</div>
</section>
<section id="dll-helper">
<h2>DLL Helper<a class="headerlink" href="#dll-helper" title="Permalink to this headline">¶</a></h2>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Defines</p>
<dl class="macro">
<dt id="c.UDSDKDLL_IMPORT">
<span class="target" id="ud_d_l_l_export_8h_1abe32ffc0265d73630d7616ebf3dd1df7"></span><code class="sig-name descname">UDSDKDLL_IMPORT</code><a class="headerlink" href="#c.UDSDKDLL_IMPORT" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="macro">
<dt id="c.UDSDKDLL_EXPORT">
<span class="target" id="ud_d_l_l_export_8h_1a105dc83418a4f3a06d89f920533634b1"></span><code class="sig-name descname">UDSDKDLL_EXPORT</code><a class="headerlink" href="#c.UDSDKDLL_EXPORT" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="macro">
<dt id="c.UDSDKDLL_API">
<span class="target" id="ud_d_l_l_export_8h_1ad893a571687b86f828dee2e29c0c6775"></span><code class="sig-name descname">UDSDKDLL_API</code><a class="headerlink" href="#c.UDSDKDLL_API" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</div>
</section>
</section>


          </div>
          
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">Euclideon udSDK</a></h1>








<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="ReleaseNotes.html">udSDK Release Notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">udSDK</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#logging-in-and-getting-user-info">Logging in and getting user info</a></li>
<li class="toctree-l2"><a class="reference internal" href="#loading-uds-models">Loading UDS models</a></li>
<li class="toctree-l2"><a class="reference internal" href="#rendering-loaded-uds-models">Rendering loaded UDS models</a></li>
<li class="toctree-l2"><a class="reference internal" href="#converting-existing-formats-to-uds">Converting existing formats to UDS</a></li>
<li class="toctree-l2"><a class="reference internal" href="#using-accessing-point-data">Using &amp; Accessing Point Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="#loading-and-using-udsdk-scenes">Loading and using udSDK scenes</a></li>
<li class="toctree-l2"><a class="reference internal" href="#analysis-features">Analysis Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="#helpers-to-talk-to-the-euclideon-server-or-other-websites">Helpers to talk to the Euclideon Server or other websites</a></li>
<li class="toctree-l2"><a class="reference internal" href="#verifying-udsdk-version">Verifying udSDK Version</a></li>
<li class="toctree-l2"><a class="reference internal" href="#error-codes">Error Codes</a></li>
<li class="toctree-l2"><a class="reference internal" href="#dll-helper">DLL Helper</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="udSDKExternal.html">3rd Party Licenses</a></li>
</ul>

<div class="relations">
<h3>Related Topics</h3>
<ul>
  <li><a href="index.html">Documentation overview</a><ul>
      <li>Previous: <a href="ReleaseNotes.html" title="previous chapter">udSDK Release Notes</a></li>
      <li>Next: <a href="udSDKExternal.html" title="next chapter">3rd Party Licenses</a></li>
  </ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" />
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>$('#searchbox').show(0);</script>








        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="footer">
      &copy;2020, Euclideon Pty Ltd.
      
      |
      Powered by <a href="http://sphinx-doc.org/">Sphinx 2.4.4</a>
      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
      
    </div>

    

    
  </body>
</html>